Docstoc

Software Engineering - DOC

Document Sample
Software Engineering - DOC Powered By Docstoc
					                           Software Engineering Review

Study class notes
Study chapter presentations
Study textbook

Chapter 1: Introduction
Software characteristics
Types of software
Importance of reusability
Software applications
Software crisis
Impact of the timeliness of change
Analysis and synthesis in software engineering (Bloom and Polya)
Garvin’s perspectives on quality
System perspective
Factors altering the software engineering process
Wasserman’s basis for quality software engineering
The value of “personal opinion” (remember the skit)
Sample questions:
What are some of the major characteristics of software that make it different from a
manufactured product? Why is software expensive?
Software is a set of items or objects that form a configuration that includes ___________,
____________, and ____________.
Draw the real and ideal failure curves for software? What factors cause the real curve to
diverge from the ideal curve?
How do we catch errors in a cost-effective manner?
What is the software crisis? What challenges do software engineers face?
What is software?
Define software engineering. What is the difference between just writing software and
software engineering?
Define system as it pertains to software engineering.
Discuss the validity of the following statement: “If we get behind schedule, we can add
more programmers and catch up.”
List 6 types of software (i.e. real-time software). Briefly describe each.
The most expensive part of the software development process is ______.
Software unlike traditionally manufactured products does not ______.
_______ view of quality is that it is something we recognize but can't define.
_____________ view of quality depends on customer's willingness to pay.

Chapter 2: Process
TQM – Total Quality Management – Quality focus
Software Process Models
       Linear Model (waterfall model)
       Prototyping Model
       RAD Model


                                                                                        1
         Incremental Model
         Spiral Model
Reasons for using a process model
Desirable properties for process models
Sample questions:
Describe 3 software process models.
List and briefly describe 3 of the process models discussed in class. Draw a diagram of
each and discuss pros and cons, compare and contrast, and provide examples of projects
for which it would be well suited for each model.
Describe the RAD model.
Describe the Spiral model.
What does CASE stand for?
What are the advantages and disadvantages of the linear model of software development?
List 5 software process models and describe 2 iterative models in detail.
What advantages are there in using process modeling in Software Engineering?
R.A.D., a type of process modeling, stands for ___________________.
A ______________ (process) can be defined as a set of ordered tasks/steps involving
activities, constraints, and resources that produce an intended output of some kind.
The four phases of the linear model are ____________________,
____________________, ____________________, and ____________________.


Chapter 3: Project Planning
4 P’s: People, Project, Process, Product
        The players
                Project personnel (who and how to choose)
        Team leaders
                MOI model of leadership (Weinberg)
                Project leader characteristics (Edgemon)
Melding People, Project, Process, Product
        Various personalities
        Group Problem Solving Zig-Zag
        Type of groups (team paradigms): Democratic Decentralized, Controlled
            Decentralized, Controlled Centralized (Mantei)
        Enrollment Management Model
Important questions for project success
Project deliverables, activities, milestones
Critical path and slack time
Gantt chart
Formal Technical Reviews: meetings, roles, and guidelines
What is the purpose of Formal Technical Reviews?

Sample questions:
Describe Democratic Decentralized, Controlled Decentralized, Controlled Centralized
groups.
What are the principle group types? Describe each.



                                                                                      2
What are the 4 P’s? Which is the most important and why (back up your perspective)?
*** Given a particular situation how should a project leader respond.
Describe the role of the project leader.
Describe the relationships between the producer, customer, and end-user as it relates to
software engineering.
Discuss the MOI model of leadership and how it can affect the productivity of a
development team.
The ______ metrics are best suited for object-oriented applications.
If you can’t measure it, you can’t ______________ it.
Define, compare, and contrast KLOC and FP metrics. What are pros and cons of each?
________________ = available time - real time.
With a large number of unskilled workers, the ______ organizational paradigm would be
most appropriate.
A software’s context, information objectives, function, and performance expectations
determine its ______.
What are the 3 strategies for avoiding risk?
What are questions that a project manager should ask when evaluating the project risks?
What is the purpose of risk analysis?
How can a risk management plan improve the outcome of particular project and the
producers?
Name some generic categories of risk. Provide examples of each.
The ______ team structure has no set leader though there may be task coordinators.
The ______ team structure may be useful for innovation but may lack the structure to
foster orderly performance as required in some projects.
The ______ team structure retains some of the control of the closed paradigm while still
fostering some of the innovation that occurs in the random paradigm.
A ______ type groups structure a team along traditional hierarchy of authority.
A software ______ provides the framework from which a comprehensive plan for
software development can be established.
The four P’s are ______, ______, ______, and ______.
The ______ are the people who interact with the software once it is deployed.
Specifically explain how a Gantt chart can assist in the effort to deliver software on time.
Define critical path and its importance. Explain how it can change during a project.
What are the similarity between building a house and a software?
Explain Weinberg’s model of leadership and Edgemon’s project manager characteristics.

Chapter 4: Requirements and software quality assurance
Requirement: a feature of the system or a description of something the system is capable
of doing in order to fulfill the system’s purpose
Three kinds of requirements:
       those that absolutely must be met
       those that are highly desirable but not necessary
       those that are possible but could be eliminated
Requirements definition: complete listing of what the customer expects the system to do,
includes general purpose, background and objectives of system, description of customer-
suggested approach, detailed characteristics, and operational environment.



                                                                                           3
Relationship between software developers and users/customer (sometimes troublesome)
Requirements specification: restates the definition in technical terms so that the designer
can start on the design
Functional vs. non-functional requirements
Formal Technical Reviews: meetings (cost-efficient), roles, and guidelines
What is the purpose of Formal Technical Reviews?
Software configuration management
Software vault
SCM terms: release, revision, baseline, version, variant (alternative to a particular
version), version control, build, deltas, engineering change order, engineering change
request

Sample questions:
Define requirements definition and requirements specification.
How would assist customers and software engineers in having an effective working
relationship?
What are the roles of the participants at a Formal Technical Review?
What is the role of a SQA group? -or- What is the purpose of SQA?
Name 5 guidelines for FTR.

Chapter 5: Designing the System
Decomposition and modularity
Architectural styles (conceptual design and technical design) and methods of
development.
3 levels of design: architectural, code, executable
Design issues: modularity, collaboration, user interface, and reusability
Characteristics of good design: loose coupling, high cohesion, fault prevention
UML (class notes)
 Class diagrams: data, operations, cardinality, multiplicity, relations, associations
 State diagrams, activity diagrams
 Use cases and use case diagrams

Sample questions:
What is the difference between analysis and design?
What are the two styles of Architectural Design documents and how do they differ?
Name three design levels and describe each.
     architecture - associates system components with capabilities
     code design - specifies algorithms and data structures for each component
     executable design - lowest level of design, including memory allocation, data
   formats, and bit patterns
Describe 4 UML diagrams and what they are used for.
Define cohesion and coupling.
When a module performs one and only one well-focused task the module possesses a
high degree of ________.
When a great deal of information is passed and shared between modules, the system
possesses a high degree of ________.


                                                                                          4
_______ is a measure of system interconnection among software modules.
Draw a simple example for each of the four UML diagrams that we used in class.



Later course topics from Chapter 3:
Risk reduction
Boehm’s top ten risk items (no need to memorize but it is important to be familiar with
top risk items)
Risk table
Reactive vs. Proactive Risk Strategies
LOC versus FP metrics
Examples of metrics related to LOC and FP
Project estimates – what do we need to estimate?
Cocomo: Basic Model (be familiar with method)
FP methodology (be familiar with basic approach)




                                                                                          5

				
DOCUMENT INFO