I219 Software Design Methodology JAIST Master s Program Fall 2014 Nguyen Van Vu nvu@fit.hcmus.edu.vn
Topics Course Introduction Objectives and Scope Evaluation Policies Content and Schedule Basic Concepts in Object-Oriented A&D 2
Teaching Staff Instructor Nguyen V. Vu FIT, HCMUS Email: nvu@fit.hcmus.edu.vn Phone: 090-817-5957 Office hour: Wed, 13:00-13:30 Office: I82 3
Course Description and Objectives This I219 course is a component of JAIST Master s Program Objectives and contents are the same as I219 at JAIST, except Less focus on Object-oriented programming language. Why? 4
Objectives Provides students knowledge and skills to perform Object-Oriented Analysis and Design (OOAD) Modeling using UML Modeling effective software systems (reusable, easy-tomaintain, easy-to-change, etc. software components) Students will also Understand and apply design patterns effectively Provide reasonable and justifiable models 5
Topics Topics to be covered Basic principles and concepts in OOAD Unified Modeling Language (UML) Static and dynamic modeling Architectural design Design patterns 6
Reference books Grady Booch, James Rumbaugh, Ivar Jacobson, The Unified Modeling Language User Guide, Addison Wesley, 2005. James Rumbaugh, Ivar Jacobson, Grady Booch, The Unified Modeling Language Reference Manual, Addison Wesley, 2004. Erich Ganmma, Richard Helm, Ralph Johnson, John Vlissides, Design Patterns Elements of Reusable Object-Oriented Software, Addison-Wesley Publishing Company, 1995. 7
Grading Grade Distribution Homework (3) 40% Final presentation and report (1) 30% Final exam (cumulative) 30% 8
Policies Moodle used for material distribution and communication Questions beneficial to both the questioner and others should be posted on Moodle s forum Students encouraged to ask questions in class Late submission policy 15% grade reduction for each day late Zero grade for 4 or more days late Exceptions are given for certain cases, e.g., illness 9
Academic Integrity Students are prohibited from copying from classmates, friends even if allowed from the Internet without proper citation (see below) Students are prohibited from allowing others to copy Other kinds of cheating and plagiarizing How to cite sources properly? If copying verbatim, put copied sentences/phrases in the double quotes If rephrasing a source, put a reference to the source 10
How to cite sources properly? Citing verbatim Citing with rephrasing Reference It is a matter of some urgency that we as a research community define and agree reporting protocols and methods for comparison [1] Shepperd believes that the research community needs to define a reporting protocols and methods for comparison [1] [1] Shepperd M, "Software project economics: a roadmap", Future of Software Engineering (FOSE'07), 2007 11
Violation penalty If the academic integrity violated, serious measures will be taken 1 st violation: zero grade for the assignment violating 2 nd violation and more: students will be failed the class and report to the school 12
Question so far? 13
Traditional Software Process Methods: Recap
Traditional Software Process Methods Waterfall Model Incremental development Spiral Model Rational Unified Process 15
Waterfall Model Requirements definition System and Software Design Implementation and Unit Testing Integration and System Testing Operation and Maintenance Disadvantage: difficult to handle changes 16
Waterfall Model Problems Inflexible partitioning of the project into distinct stages it is difficult to respond to changing customer requirements This model is may be mostly used for large systems engineering projects where a system is developed at several sites 17
Waterfall Model Revised Requirements definition System and Software Design Implementation and Unit Testing Integration and System Testing Operation and Maintenance 18
Traditional Software Process Methods Waterfall Model Incremental development Spiral Model Rational Unified Process 19
Process iteration System requirements ALWAYS evolve in the course of a project Iteration can be applied to any of the generic process models Approaches Incremental delivery/development Spiral development Rational Unified Process (RUP) 20
Incremental development (Sommerville 2007) 21
Incremental development (cont d) High priority features can be delivered early so system functionality is available earlier Early increments are prototype to help elicit requirements for later increments Lower risk of overall project failure Highest priority features tend to receive the most testing 22
Traditional Software Process Methods Waterfall Model Incremental development Spiral Model Rational Unified Process 23
Spiral Model (Boehm 1988) 24
Spiral Model Sectors Objective setting Risk assessment and reduction Development and validation Planning 25
Spiral Development Process is represented as a spiral rather than as a sequence of activities with backtracking Each loop in the spiral represents a phase in the process No fixed phases such as specification or design - loops in the spiral are chosen depending on what is required Risks are explicitly assessed and resolved throughout the process 26
Traditional Software Process Methods Waterfall Model Incremental development Spiral Model Rational Unified Process 27
Rational Unified Process (RUP) A modern process model derived from the work on the UML and associated process Developed and introduced by Rational Software, now IBM Rational Normally described from 3 perspectives A dynamic perspective that shows phases over time; A static perspective that shows process activities; A practical perspective that suggests good practice. 28
RUP Activities are grouped into workflows Includes four phases Inception, Elaboration, Construction, and Transition Each phase is divided into one or more iterations 29
RUP Phases Inception Establish the business case for the system. Elaboration Develop an understanding of the problem domain and the system architecture. Construction System design, programming and testing. Transition Deploy the system in its operating environment. 30
RUP Iteration Each phase is divided into one or more iterations Each iteration is considered a waterfall cycle requirements, analysis & design, implementation, testing, and deployment Each iteration has entry and exit criteria or check points Typical number of iterations per phase Inception: 1-2 iterations Elaboration: 1-3 Construction: 2-3 Transition: 2-3 31
RUP Workflows Business modeling The business processes are modeled using business use cases Requirements Actors who interact with the system are identified and uses cases are developed to model the system requirements Analysis and Design Software architecture and design are created and presented via architectural models, component models, object models, etc. Implementation Software components are implemented 32
RUP Workflows (cont d) Testing Includes testing activities performed to verify and validate the product against the requirements Deployment Activities to release and deploy the product and help users to use the product successfully Configuration and Change Management (SCM) Manages changes to the software product Project Management Manages software development Environment Prepares and ensures software tools, processes, and hardware for the development team 33
RUP Good Practices Develop software iteratively Manage requirements Use component-based architectures Visually model software Verify software quality Control changes to software Use tools Use-case driven development Modeling and UML 34
Final Note on Software Process Analysis and Design is an important component of software development 35
References Ian Sommerville, Software Engineering, 8th Edition, Addison-Wesley, 2007 36