Title: MT356F Course Review
1MT356F Course Review
- What you have studied
- in Software Engineering
- Instructed by Steven Choy on Mar 26, 2007
2- Overview on Course Contents and Examination
3Final Examination
- April 30, 2007, 0930-1230 (not yet confirmed)
- 3-hours, closed-book, written examination
- Part A
- Answer 8 compulsory questions,
- amount to 40 marks
- Part B
- Answer 3 out of 4 optional questions,
- amount to 60 marks
- No explicit Java programming questions
4Final Examination
- 3 hours, 100 marks
- ? 180 minutes, 100 marks
- ? 1.8 minutes per mark
- ? 30 minutes to do one long question
- ? 7 minutes to do one short question
- Do not bring calculator and dictionary
5Revisions Materials
- Lecture Notes Lecture1 to Lecture19
- Textbook All except Chapters 9 and 12.
- Tutorials
- Practical and programming works are less important
6Scope of Examination
- Software Requirements (At least one long
question) - Lectures 5, 6
- Chapters 4, 5
- Software Design (At least one long question)
- Lectures 7, 8, 9, 10
- Chapters 6, 7, 8
7Scope of Examination
- Implementation and Testing (At least one long
question) - Lectures 12, 13, 14
- Chapters 10, 11
- Configuration and Project Management (At least
one long question) - Lectures 15, 16
- Chapters 3, 13, 14
8Scope of Examination
- Modeling with UML
- Software Engineering Activities and Processes
- Software Engineering Life Cycle
- Software Engineering Methodologies
- Lectures 2, 3, 4, 17, 18, 19
- Chapters 1, 2, 15, 16
9 10Requirement Elicitation (Chapter 4)
- Types of requirements functional, nonfunctional,
constraints - Nonfunctional requirements concepts and examples
- Requirement criteria correctness, completeness,
consistency, realism, traceability, verifiability - Greenfield engineering, re-engineering, and
interface engineering - Requirement elicitation activities what are they?
11Requirement Analysis (Chapter 5)
- Functional modeling with use case diagrams
- Benefits and function of use case modeling
- Static modeling with class diagrams
- Dynamic modeling with sequence diagrams
- Dynamic modeling with statechart diagrams
- Object types entity, boundary, and control
- Requirement analysis activities
- Difference between elicitation and analysis
12System Design 1 (Chapter 6)
- Decomposing the system
- Coupling and cohesion
- Benefits of low coupling and high cohesion
- Layers and partitions
- Software architectural styles
- Repository, Model-View-Controller, Client-Server,
3-tire, 4-tier, Pipe and filter - Benefits of using software architectural style in
general - Benefits of each architectural style
13System Design 2 (Chapter 7)
- Addressing Design Goals
- System design activities
- There are a number of activities that are needed
to ensure that subsystem decomposition address
all the nonfunctional requirements and can
account for any constraints during the
implementation phase. What are these activities? - What does it mean by boundary conditions?
14System Design 3 (Chapter 8)
- Reusing Pattern Solutions
- Application-domain objects and solution-domain
objects - Software Design Patterns
- Three main categories creational, structural,
behavorial - Bridge pattern, Adapter pattern, Strategy
pattern, Abstract Factory pattern, Command
pattern, Composite pattern - Concepts, diagrams, and applicability
15Mapping models to code (Chapter 10)
- Model transformation
- Forward engineering
- Reverse engineering
- Refactoring
- Simple ideas and practice of refactoring
16Testing (Chapter 11)
- Difference between verification and validation
- Types of testing
- unit test, integration test, system test
- Types of system testing
- Functional test, performance test, acceptance
test, installation test - Black-box testing vs. white-box testing
- Integration testing strategy
- Bottom up integration, top-down integration
- Pros and cons of different approaches
- Functions of test driver and test stub
17SCM (Chapter 13)
- Software Configuration Management (SCM)
- What is the purpose of SCM?
- SCM activities (concepts only)
- Configuration item identification
- Promotion management
- Release management
- Change management
- Branch management
- Variant management
- Persons and roles in SCM
18SCM (Chapter 13)
- Concepts and terminology
- What are configuration item, baseline, SCM
directories, version, revision, and release - Difference between version, revision, and release
- Difference between promotion and release
- Examples of configuration items
- Can you draw class diagram to model various
concepts of SCM
19Project Management (Chapter 14)
- Project management concepts
- Can you draw diagram to model various concepts of
software project - Project management activities
- Elements of a software project management plan
- What are work package, work product, project
baseline, and project deliverable? - Scheduling
- Activity network diagrams and critical path
determination - What are critical path, non-critical path, and
slack time?
20Project Management (Chapter 14)
- Project Organization
- Functional organization
- Project-based organization
- Matrix organization
- Advantages and disadvantages of each type
- When to use which
21Software Life Cycle (Chapter 15)
- Basic Concepts of CMM
- The Five Maturity Levels
- Sequential activity-centered models
- Pros and cons
- Unified software development process
- RUP characteristics
- Iterative, use-case driven, architecture driven
- RUP phases
- Inception, Elaboration, Construction, Transition
22Modeling with UML (Chapter 2)
- UML diagrams
- Use case diagrams
- Class diagrams
- Sequence diagrams
- Statechart diagrams
- Activity diagrams
- Functions of these diagrams
- You should know how to draw these diagrams based
on a given problem or description
23Important Documents in Software Development
- Requirements Analysis Document (RAD)
- (P.151 and P. 199 of the Textbook)
- System Design Document (SDD)
- (p. 282 of the textbook)
- Object Design Document (ODD)
- (p. 373 of the textbook)
- Test Plan, Test Case Specifications
- (p.474 of the textbook)
- Software Configuration Management Plans (SCMP)
- (p.561 of the textbook)
- Software Project Management Plan
- (p.586 of the textbook)
24What are the benefits of using software
architectural style?
- The use of an appropriately chosen architectural
style furnishes a system with the desirable
characteristics to meet the system design goals. - The allocation of classes to subsystems will be
simpler. - The naming of specific architectural styles
enhances the communication of the project team
because the technically oriented team members
will immediately understand the design.
25What are the benefits and uses of Use Case
Diagrams?
- Use case diagrams are helpful in three areas.
- determining features (requirements). New use
cases often generate new requirements as the
system is analyzed and the design takes shape. - communicating with clients. Their notational
simplicity makes use case diagrams a good way for
developers to communicate with clients. - generating test cases. The collection of
scenarios for a use case may suggest a suite of
test cases for those scenarios.
26More
- Refer to the textbook and lecture notes whenever
you are not familiar with topics discussed in
this lecture. - Well plan your time to do revision and
examination preparation.