Software Engineering
What is a software process
A set of activities whose goal is the development or evolution of software
What bass view is concerned with Work Assignment, deployment and implementation
Allocation view
What does an interface do on a component diagram
Allows communications between sub components
What does a port do on a component diagram
Allows components to talks to each other
Define Aggregation
An aggregation is consider the whole class where the part can survive if the whole dies
What is the formula for Interpersonal Communication Overhead
(n(n-1))/2 ex (4(4-1))/2 = 6
What does this cardinality symbol mean {0...N}
0 to many
What are the steps of the V-model
1 requirement ----------7 Acceptance testing 2Global design -------6 Integrations testing 3Det Design ----------5 Unit testing 4 Coding
What does this cardinality symbol mean {1...1}
1 to 1
What are two components of the first software engineering principle
1. Chose Software Development Life Cycle model 2. Develope project plan
What are some key differences with the Lightweight Software Model as compared to the Heavyweight Software Model
1. Customer Involved 2. Less Documentation 3. Faster product delivery 4. Changes accommodated 5. Flexible structure control
What are the four attributes of good software
1. Dependability 2. Efficiency 3. Acceptability 4. Maintainability
What are some advantages of the Prototyping Model
1. Getting Customer feedback 2. Allows the creation and testing of parts of a product before the entire product 3. Production quality is not required
What are the seven principles of software engineering
1. Manage using a phased life-cycle plan 2. Perform continuous validation 3. Maintain disciplined product control 4. Use modern programming practices 5. Maintain clear accountability for results 6. Use better and fewer people 7. Maintain a commitment to improve the process.
What are the three aspects of software failure
1. Over budget 2. Late 3. Does not satisfy user needs or expectations
What are four different types of Lightweight Software development models
1. Prototyping 2. Incremental Development 3. RAD, DSDM 4. Extreme Programming
Phases in the Waterfall life cycle of a software product
1. Requirement Engineering 2. System Design 3. Implementation 4. System testing 5. Maintenance
What are the steps for Prototyping Model
1. Requirements engineering (For entire product) 2. Design (Prototype) 3. Implementation (Prototype) 4. testing (prototype developed)
What are the three critical software systems
1. Safety 2. Mission 3. Business
What are the advantages of the Waterfall model
1. Straight forward 2. Find problems earlier in the process 3. Documentation 4. Best for larger projects over 50 team members
What are the key aspects of the Incremental Development Model
1. System is delivered in small increments 2. Waterfall Model is employed 3. User is closely involved 4. Incremental development prevents over-functionality
What are the three types of Prototyping Development Models
1. Throwaway 2. Evolutionary 3. Incremental Development
What are three generic software process models
1. Waterfall 2. Iterative development 3. Component-based software engineering
A component is defined as what
A box that represents functional aspects
Define Composition
A composition is a class that is part of a whole class where the part would die of the whole dies
What is a DFD diagram
A data flow diagram (DFD) is a graphical representation of the "flow" of data through an information system, modelling its process aspects.
What is a Data Flow Diagram
A graphical representation of the "flow" of data through an information system
A connector is defined as what
A line that connects components
What is a finite state machine
A mathematical model of computation used to design both computer programs and sequential logic circuits.
What is meant by Entity relationship Modeling
A modeling type that uses the entities, entities types, attribute values, attributes, and relationships
A rectangle in a ER diagram signifies
Entitiy type
What is a software process model
A simplified representation of a software process, presented from a specific perspective
Define Architectural Style
A style or description of component or connector types and a pattern of their runtime control and data transfer
What architectural style uses local data
Abstraction
What part of a class diagram provides behavior that can be overwritten in the extending class
Abstraction
What are the key aspects of Dynamic Systems Development Method. (DSDM)
Active user involvement Teams must be empowered to make decisions Focus on frequent delivery of products Iterative and incremental development Changes must be reversible Testing is integrated throughout the lifecycle
Three main purposed of Software Architecture
Acts as a communication tool Acts as earliest set of design decisions Acts as a transferable abstraction of system
What type of association is symbolized by a straight line and a diamond
Aggregation
What associations are shown in the following diagram
Aggregation Composition
What are the two types of associations
Aggregation and Composition
What is meant by negotiation
Agreeing on the boundaries of the problem
What is meant by validation
Agreeing on the nature of the problem
Why is it important to maintain product control
As these changes impact the system development, it is very easy for different versions of the documentation and the code to proliferate.
An elispse in an ER diagram signifies
Attributes
Why is it it important to manage using a phased life-cycle plan
Because roughly 50% of projects fail due to poor planning
What does an ER diagram consist of
Entity Entity Types Attribute values Attribute Relationship
What are the classic modeling techniques
Entity relationship Modeling Finite state machines Data flow diagrams CRC cards
What bass view is concerned with runtime events, process, concurrency, shared data, and client server
Component and Connector
What type of association is symbolized by a straight line and a solid diamond
Composition
What is a type of association is a room to a building
Composition because you cannot have a room without a building
What are the four types of components
Computational Memory Manager Controller
What is a key component of the third software engineering principle
Configuration management because of changing requirements
When should DSDM be used
DSDM should be used when subject matter experts can be used in all phases of development, and on the job training is not an option.
Basses model view is comprised of what
Decomposition Uses layered Class
List the association strengths in order of weakest to strongest
Dependency Aggregation Composition
What is meant by specification
Describing the problem
Define Heterogeneity
Developing techniques for building software that can cope with heterogeneous platforms and execution environments
Define Trust
Developing techniques that demonstrate that software can be trusted by its users
Define Deliverability
Developing techniques that lead to faster delivery of software
Why is it important to use few and better people on a project
Doing so reduces the communications overhead on a project by getting the job done with fewer, more productive performers
Why should you maintain a commitment to improve the process
Doing so verifies that the particular form of the principles adopted by an organization is indeed the best match for its particular needs and priorities.
How is the end point represented in state transition diagram
Double circles
Why is it important to maintain clear accountability for results
Each individual on the project team should have a clear statement of the results for which he or his group are accountable, and a clear understanding that his future rewards depend on how well he does in producing those results.
What are the main steps for Requirements Engineering
Elicitation Specification Validation Negotiation
What are the phases of DSDM
Feasibility study /Business study Functional model Iteration Design /Build Iteration Implementation
What are the key aspects of the RAD Model
Fixed time frames within which activities are done Time frame is decided upon first The use of Joint Requirements Planning (JRP) and Joint Application Design (JAD) Requirements prioritization through a triage Development in a SWAT team
What are three different ways to describe waterfall model
Heavyweight Model (Process oriented) Plan Driven Model (Must have Plan) Document Driven Model (Each phase produces documentation)
What are some key challenges to software engineering
Heterogeneity Delivery Trust
What is the process for making decisions when discussing Architecture styles
Identify sub problems Each issue gets different solutions Choose solution for each sub problem, then integrate into final solution
What architectural style follows a publisher/subscriber event driven model
Implicit Invocation
What architectural style requires event handlers and uses signal and react to events
Implicit Invocation
What are the four types of design decisions
Implicit undocumented Explicit Undocumented Explicit, Explicitly Undocumented Explicit Documented
What are the differences between the conceptual, logical and Implementation view points
Logical shows key interactions withing th systems Conceptual shows the high level map of the system Implementation shows the organization of the submodels in the system
What is the process to performing domain analysis
Look at a number of systems in an applications entire domain, and identify reusable components, concepts, structures, and the like.
What are some examples of Architectural style
Main Program with subroutines Data Abstraction Implicit Invocation Pipes and Filters Repository Layers of abstraction
What architectural style uses shared data
Main with subroutines
What bass view is concerned with units related by is a submodule
Model (decomposition)
What are the Bass's Architecture viewpoints
Model View Component and connector Allocation Views
What is finite state machine
Models of a system in terms of a finite number of states and transitions between those states
What are the advantages modern programming practices
More visibility into the software development process Contributes greatly to getting errors out early Produces much more understandable and maintainable code Makes many other software jobs easier, like integration and testing.
What is meant by the term MoSCow
Must have Should have Could have Wont Haves
What is a very important deliverable of the Incremental Model
Must have prioritization of the requirements.
What are some examples of MPP
Object oriented Top Down Structured Programming
What is another name for UML Diagrams
Object oriented modeling
When would you use Extreme Programming
On projects with small teams Expert Programming skills are not needed When all parties can work side by side effectively
What architectural style uses a series of incremental transformations and is largely used by Unix and compilers
Pipes and filters
What are the six types of connectors
Procedure Data Flow Implicit Invocation Message Passing Shared Data Instantiation
Define Throwaway Prototyping Model
Product prototypes is thrown away after development
When Should RAD be used
RAD should be used when there is a need to create a system that can be modularized in 2-3 months of time, and resource cost is not a priority
A diamond in an ER diagram signifies
Relationship
What are the four phases of the RAD model
Requirements Planning; User Design; Rapid Construction; Cutover
What is meant by domain analysis
Requirements analysis who's goal generally is to identify reusable components, concepts, structures, and the like.
When would you use the Prototype model
Requirements are unstable or have to be clarified Develop user interfaces Short-lived demonstrations New, original development With the analysis and design portions of object-oriented development.
What is the difference between requirements and design phase
Requirements are what we want done, and design is how are we going to achieve it
What architectural style holds a rich data structure where data is manipulated by multiple clients
Respository
What are the key aspects of Extreme Programming
Small phases Simplicity Pair Programming Onsite Customer involvement
Define Software Engineering
Software engineering is an engineering discipline which is concerned with all aspects of software production
How is the starting point represented in state transition diagram
Solid Bubble
In a class diagram as class or a relationship is denoted by what
Specialized lines that range from associations, to generalizations to inheritance and dependancies
What is the Pre-Architectural life cycle
Stake Holders Quality and Requirements Agreement Development
How do you decide which viewpoint to use
Stakeholder voice their concerns Viewpoint address those concerns Identify, prioritize, and combine viewpoints to address concerns
What are CRC card
Standard index card that has been divided into three sections
How is an data flow represented in a work context diagram
a line an arrow ----->
When would you use the incremental model
This model can be used when the requirements of the complete system are clearly defined and understood. When some some details can evolve with time. There is a need to get a product to the market early. A new technology is being used. Resources with needed skill set are not available.
Why is it important to perform continuous validation
To prevent detecting and correcting software problems until late in the project
What is meant by Elicitation
Understanding the problem
What is meant by the term UML
Unified Modeling language
What does UML stand for
Uniform Modeling Language
What are the four things that come to mind with Architectural Style
What problem are we trying to solve What components are utilized What connectors are utilized What is the context and what are the contraints
What would you utilize MoSCow
When you can prioritizes user requirements
How is an process represented in a work context diagram
a circle
How is an external entity represented in a work context diagram
a rectangle
What is a type of association is a employee to a department
aggregation because an employee will survive without a department
How are transitions from one state to another represented on a state transitions diagram
arcs
What are the two types of directional associtaions
bi-directional uni-directional
How are state represented in a State transitions diagram
bubbles
In a class diagram as class or a node contains what
name, attributes, and methods
Dependency associations are signified by what
straight dotted line with an arrow
How is a data store represented in a work context diagram
two solid straight line ----------- -----------
What are characteristics of a good SRS
unambiguous Consistent Correct Complete Verifiable Testable Modifiable
Modulality is specified by
{0 ... 10}
Cardinality is specified by
{0..1}