0% found this document useful (0 votes)
325 views10 pages

Software Engineering Exam Review

This document provides an overview of topics covered in an exam review for a software engineering course. It discusses software engineering methodologies like the waterfall model and typical project phases involving requirements, design, development, and testing. It also defines UML notations like sequence diagrams, use cases, and state diagrams. Additionally, it covers project scheduling with Gantt and PERT charts, requirements attributes, object-oriented concepts, subsystem design, architecture styles, testing strategies, and reliability metrics.

Uploaded by

Sheehan T Khan
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as RTF, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
325 views10 pages

Software Engineering Exam Review

This document provides an overview of topics covered in an exam review for a software engineering course. It discusses software engineering methodologies like the waterfall model and typical project phases involving requirements, design, development, and testing. It also defines UML notations like sequence diagrams, use cases, and state diagrams. Additionally, it covers project scheduling with Gantt and PERT charts, requirements attributes, object-oriented concepts, subsystem design, architecture styles, testing strategies, and reliability metrics.

Uploaded by

Sheehan T Khan
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as RTF, PDF, TXT or read online on Scribd
You are on page 1/ 10

Exam 1 Review

1. What is software engineering? Explain the typical activities of ObjectOriented Software Design?
Process to develop a piece of software by an organization from the
beginning until the end
Activities include:
- client to developer interactions
- requirements elicitation
- system analysis design
- software development
- testing
- maintenance
Typical activities can be laid out in various methodologies.
Waterfall engineering
Phase 1 - (System Project Management):
- defining the software
- interacting with the client
- forming and agreement
- setting tasks across a team
- gantt charts
Phase 2 - (Requirements Elicitation):
- defining software requirements
- defining software constraints
- defining out of scope requirements
- requirements traceability matrix
- requirements rationale
Phase 3 - (System Analysis Design):
- refine requirements
- requirements analysis design

screenshots/prototypes

- software architecture design


- use cases
- requirements analysis design
- sequence interaction diagrams
- category interaction diagrams
- user interaction diagrams and

- function point
Phase 4 - (System Object Design):
- state object diagrams
- class object diagrams
- object design
- object rationales
Phase 5 - (Development):
- writing code
- setting up system
Phase 6 - (Testing):
- writing test cases
- test case rationales
- performing tests
Phase 7 - (Maintenance):
- general maintenance of software
- bug tracking
- debugging
- cod optimization
2. Explain the 5 UML notations introduced to you in class
Sequence/Interaction Diagram:
- shows the sequence of events for a uses case
- starts with an actor
- moves along a timeline with sequence of events
- creates control objects for user to interact with class objects

Use Case
- describes the flow of events of a requirement from the RTM
- in document format
- includes preconditions, postconditions, and alternative
scenarios
- includes shall statement of requirement
State/Activity Diagram
- shows the outlook of how each class interacts with each actor
- actors include objects interacting with the class objects
- class objects include objects extended from the sequence
diagrams that are necessary for software
Class Diagram
- used to show the model of class objects
- can be trees where a class object extends to a sub class
object using diamond notations
State Machine Diagram
- used to show of how states interact with each other during the
lifecycle of the sequence of events
- includes software and interactions with actors
3. Scheduling a project
Gantt Chart
- used to map the schedule of a project
- includes everyone on the team working on the project
- includes each requirement needed to be done
- includes a timeline of each requirement for a team member
sequentially
Pert Chart
- pert charts include project milestones, and lines connecting
them
- lines have a time associated with it and are called activities or
critical paths

- graphical representation
- easy to see which milestones will take the shortest amount of
time, ability to optimize time
4. What is:
a. Realism:
- requirements can be functionally achieved
b. Verifiability
- requirements are verified to be correctly functional
c. Traceability
- requirements described as functional or nonfunctional
- requirements described as software, hardware, having
constraints with either, or nice to have
d. Functional requirements:
- requirements necessary for the project to function correctly
e. Nonfunctional requiretments:
- requirements are not necessary for the project to function
correctly
6. Explain the following
a. Aggregation
- aggregate of associations and attribute
- denotes a whole part relationship
b. Association
- an association between attributes
- are properties of individual objects
c. Boundary Objects
- system interface objects between each actor
d. Control Objects
- objects that coordinate actors, boundary objects, and entities

Exam 2 Review
Mapping
- maps use cases to sequence diagrams
- refine sequence diagrams to reduce redundancies
- finds missing behavior or new participating objects
- first column: actor
- initiates use case
- second column: boundary object
- creates control object
- third column: control object
- drives rest of use case
Category interaction design
- timeline logically related classes within a use case case
CRC (Class, Responsibilities, and Collaborators)
- high level representation of sequence diagrams
Associations
- representations between 2 or more classes
- properties
name: describes the association
role: describes function of each class (object within software)
multiplicity: describes number of instances class can have
Function Point Analysis
- identify system boundary
- boundary defines functions included in FPC
- identify the number of:
- user inputs

- user outputs
- user inquiries
- internal files
- external interface of files
- identify the complexity of all systems
- FPC = (Total FP) * [0.65 +0.01*(sum of category ratings)]
Subsystem
- replaceable part of the system with well defined interfaces
- encapsulates the state and behavior of contained classes
- subsystem interface
name of operation
parameters and data type
return values
high level behavior
- coupling
number of dependencies within system
loosely coupled and independent
connectors are ball and socket
- cohesion
number of dependencies within subsystem
Category interaction diagram
- sequences of subsystem objects to produce use case
Architecture styles
Repository
- subsystems access a single data structure called a central
repository
Model View Controller
- 3 subsystems
Model:

- responsible for maintaining domain knowledge and


data

View:
- responsible for displaying data to user
Controller:
- responsible for managing sequence of interactions

with user
Client Server
- server subsystem accessed by multiple instances of
subsystems called clients
- used for remote applications
Peer-to-Peer
- client server architecture where clients act as both clients and
servers
- napster, bittorrent, dropbox
3 & 4 Tier Architecture
- top down architecture of subsystems, each tier in the middle
serves as middleware
Pipe and filter
- subsystems taking inputs to filter and sending outputs to other
subsystems
- Google search
Data stores
- flat files
- relational database
- object oriented database
Control Flow
- sequencing of actions within a system
- control Mechanisms
Procedural

operations wait for input when data is needed. procedural


code

Event driven
has a main loop that always listens for events and carries
out when ready
Threads
system creates concurrent threads
System design activities
mapping subsystems
identifing data
providing access control
designing control flow
identifying services
identifying boundary conditions
reviewing system design model
Object design
design objects of subsystems
model restructuring
model optimizations
Design Patterns
Delegation
delegates code to classes, opposite of inheritance
Liskov Substitution
superclass with substitutable objects
changes to superclass wont affect subsystems
needs to have 4 essential elements
name - identifies patterns from other patterns
problem description - describes situations of problems
solution - a solution of collaborating classes and interfaces

consequences - tradeoffs and alternatives


Testing
Unit testing
Structural testing
Functional Testing
Performance Testing

layer

Activities
Test Planning
Usability Testing
User Interface Testing
Unit Testing
Integration Testing & Structural Testing
Big bang testing
overall testing of software
Bottom up testing
bottom layers are tested then integrated with top
Top down testing
top layers are testing then integrated with bottom

layers

System Testing

Software Reliability - probability that system will not cause failure


Erroneous state - system in in state of error and cant proceed
Failure - failed test
Fault - a software bug

You might also like