Comp 480 Final Exam Review

 

Chapter 24: Project Management Concepts

            Focus of Software Project Management

                        People

                        Product

                        Process

                        Project

            The People

Who’s involved?

Software Team

                                    Closed paradigm

                                    Random paradigm

                                    Open paradigm

                                    Synchronous paradigm

                                    What are the differences?

                                    Under what circumstances would you pick one over the others?

            The Product

                        Determination of software scope

                        Problem decomposition

            The Process

                        Selection of an appropriate process

                        Process decomposition

            The Project

                        What management activities are needed for a successful project?

 

Chapter 5: Understanding Requirements

            Requirements engineering

                        Inception

                        Elicitation

                                    Problems of scope

                                    Problems of understanding

                                    Problems of volatility

                        Elaboration

                        Negotiation

                        Specification

                        Validation

                        Requirements management

            Identifying stakeholders

            Gathering requirements

            Developing use cases

            Negotiating requirements

            Modeling and documenting requirements

            Validating requirements

 

Chapter 26: Estimation for Software Projects

            Establishing project scope

            Estimating resources required

                        Human resources

                        Reusable software resources

                        Environmental resources

            Estimation techniques

                        Decomposition

                                    Problem based (using LOC or FP)

                                    Process based

                                    Use-case based

                        Empirical models

                                    The general form

                                    The COCOMO model

                                    The software equation

 

Chapter 27: Project Scheduling

            Basic Principles

                        Compartmentalization

                        Interdependency

                        Time allocation

                        Effort validation

                        Defined responsibilities

                        Defined outcomes

                        Defined milestones

            Relationship between people and effort

                        The software equation

            A Task Set

                        Work tasks

                        Milestones

                        Deliverables

            Types of projects

                        Concept development

                        New application

                        Application enhancement

                        Application maintenance

                        Reengineering

            Scheduling

                        Task network charts

                                    Task flow

Critical path

                        Timeline (Gantt) charts

           

Chapter 28: Risk Management

            Characteristics of Software Risk

                        Uncertainty

                        Loss

            Risk Identification

                        Product-specific risks

                        Generic risks

            Risk Impact

                        Risk Projection

                        Probability

                        Impact

            The RMMM Plan

                        Risk Mitigation (avoidance)

                        Risk Monitoring

                        Risk Management (and contingency planning)

 

Chapter 8: Design Concepts

            Levels of Design

                        Data/Class Design

                        Architectural Design

                        Interface Design

                        Component-Level Design

            Design Diagrams/Models

                        Scenario-based

                                    Use cases – text

                                    Use case diagrams

                                    Activity diagrams

                                    Swimlane diagrams

                        Class-based

                                    Class diagrams

                                    Analysis packages

                                    CRC models

                                    Collaboration diagrams

                        Flow-oriented

                                    Data flow diagrams

                                    Control-flow diagrams

                                    Processing narratives

                        Behavioral

                                    State diagrams

                                    Sequence diagrams

            Guidelines for a Quality Design

            Design Concepts

                        Abstraction

                        Architecture

                        Patterns

                        Separation of Concerns

                        Modularity

                        Information Hiding

                        Functional Independence

                        Refinement

                        Aspects

                        Refactoring

                        Object-Oriented Design Concepts

                                    Classes and objects

                                    Inheritance

                                    Messages

                                    Polymorphism

                                    Encapsulation

                        Coupling and Cohesion

 

Chapter 11: User Interface Design

            The Golden Rule

                        Place the user in control

                        Reduce the user’s memory load

                        Make the interface consistent

            User Interface Design Process

                        Interface analysis and modeling

                        Interface design

                        Interface construction

                        Interface evaluation

 

Chapter 25: Process and Project Metrics

            Software Measurement

                        Size-oriented metrics

                        Function-oriented metrics

                        Object-oriented metrics

                        WebApp project metrics

            Metrics for Software Quality

                        Measurements for:

                                    Correctness

                                    Maintainability

                                    Integrity

                                    Usability

                        Defect Removal Efficiency

            A Software Metrics Program

 

Chapter 14: Quality Concepts

            What is Software Quality?

            Quality Factors

                        Functionality

                        Correctness

                        Reliability

                        Usability

                        Integrity

                        Efficiency

                        Maintainability

                        Flexibility

                       Testability

                        Portability

                        Reusability

                        Interoperability

            User Interface Quality Attributes

                        Intuitiveness

                        Efficiency

                        Robustness

                        Richness

            What is the Software Quality Dilemma?

            The Cost of Quality

                        Prevention costs

                        Appraisal costs

                        Failure costs

                                    Internal

                                    External

            Achieving Software Quality

                        Software Engineering Methods

                        Project Management Techniques

                        Quality Control

                        Quality Assurance

 

Chapter 16: Software Quality Assurance

            Elements of Software Quality Assurance

                        Standards

                        Reviews and Audits

                        Testing

                        Error/Defect Collection and Analysis

                        Change Management

                        Education

                        Vendor Management

                        Security Management

                        Safety

                        Risk Management

            What is Statistical Software Quality Assurance?

            Measures of Reliability and Availability

                        MTBF = MTTF + MTTR

                        Availability = (MTTF/(MTTF+MTTR))x100%

            Six Sigma for Software Engineering

            The ISO 9000 Quality Standards

 

Chapter 15: Review Techniques

            The Cost of Software Defects

                        Defect Amplification

                        Defect Removal

            Cost Effectiveness of Reviews

            Informal Reviews

                        Desk Check

                        Casual Meeting

                        Pair Programming

            Formal Reviews

                        Walkthroughs

                        Inspections

                        Round Robin Reviews

 

Chapter 17: Software Testing Strategies

            Verification and Validation

            Testing Strategies

                        Unit Testing

                        Integration Testing

                        Regression Testing

                        Smoke Testing

                        Validation Testing

                                    Acceptance Testing

                                                Alpha Testing

                                                Beta Testing

                        System Testing

                                    Recovery Testing

                                    Security Testing

                                    Stress Testing

                                    Performance Testing

            Debugging

                        Why is it difficult?

                        Strategies

                                    Brute force

                                    Backtracking

                                    Deduction

                                    Induction

           

Writing User Documentation

            Break down the documentation by task

            Plan for an audience

            State the purpose of the document

            Organize the documentation

            Develop a product visualization

            Pick the appropriate medium

            Decide on a page format and layout

            Design for ease of editing

           

Sample short answer questions:

 

1.            Explain the concept of information hiding in software design?

 

2.            Give an example of a user interface feature that “reduces the user’s memory load”.

 

3.            What is meant by software validation?

 

4.            With respect to software quality management, what is meant by “quality control”.

 

5.            Identify five quality attributes of software.

 

6.            Describe how you would design your user documentation to make it easy to change?

 

7.            What is regression testing?

 

8.            Explain the backtracking strategy in debugging?

 

9.            Give one of the main differences between software walkthroughs and software inspections?

 

10.          What metric(s) would you use to measure the reliability of a software system?

 

 

 

Sample essay questions:

 

1.    Suppose you worked for a software company that did not have a process for reviewing the software designs or code produced by individual developers before formal testing.  What arguments could you use to try to convince your company's management to change the process to include reviews as a routine practice, and what kind of a review process would you recommend? That is, what are the advantages of design and code reviews, and how would one begin to implement a change to incorporate reviews?

 

2.    Explain how measurement can be used to improve product quality.  That is, identify what metrics you would use, and how you would use the information obtained to improve product quality.

 

3.    Suppose that you have been appointed as a project manager for a small software products company.  Your job is to build a breakthrough product that combines virtual reality hardware with state-of-the-art software.  Because competition for the home entertainment market is intense, there is significant pressure to get the job done quickly.  What team structure would you choose and why?  What software process model(s) would you choose and why?

 

4.    Suggest some practical methods by which a manager can monitor compliance with costs and schedules defined in the Software Project Plan.

 

5.    Can a program be correct and still not exhibit good quality? Explain your answer.

 

6.    Aside from finding errors what are additional objectives of testing?

 

7.    Explain how software measurement can be used to improve the accuracy of estimates in future projects.  That is, specifically identify the metrics you would use, and how you would use the information obtained to improve the quality of the estimation process in the future.

 

8.    For one of the user interface design principles, describe how the system your team is developing has been designed to ensure that this principle is being followed?  That is, identify one of the design principles for user interfaces and identify the planned features or functions of your system that support it

 

9.    How do you know when you have done enough testing for a software product?

 

10.  Suppose one of the significant risks for a software project that you are managing is that many of the software engineers assigned to the project are not familiar with the programming language you are required to use.  (E.g., you can assume that the project is being developed for the Department of Defense, and they require that Ada be used as the programming language.)  Even though the company may have some expert Ada developers, these individuals are in short supply, and only a small number have been assigned to your project.  Develop an RMMM plan for this risk.  In particular, specify what steps you would take to try to mitigate the risk, how you would monitor the situation, and what your contingency plan would be if it appeared that a lack of Ada knowledge was adversely affecting the project cost or schedule.