SlideShare a Scribd company logo
1
Software Engineering
Session 1 – Main Theme
Software Engineering Fundamentals
Dr. Jean-Claude Franchitti
New York University
Computer Science Department
Courant Institute of Mathematical Sciences
Presentation material partially based on textbook slides
Software Engineering: A Practitioner’s Approach (7/e)
by Roger S. Pressman
Slides copyright © 1996, 2001, 2005, 2009, 2014
2
2 Software Engineering Fundamentals
Agenda
1 Instructor and Course Introduction
4 Summary and Conclusion
3 Towards a Pattern-Driven SE Methodology
3
- Profile -
 32 years of experience in the Information Technology Industry, including twelve years of experience working
for leading IT consulting firms such as Computer Sciences Corporation
 PhD in Computer Science from University of Colorado at Boulder
 Past CEO and CTO
 Held senior management and technical leadership roles in many large IT Strategy and Modernization
projects for fortune 500 corporations in the insurance, banking, investment banking, pharmaceutical, retail,
and information management industries
 Contributed to several high-profile ARPA and NSF research projects
 Played an active role as a member of the OMG, ODMG, and X3H2 standards committees and as a
Professor of Computer Science at Columbia initially and New York University since 1997
 Proven record of delivering business solutions on time and on budget
 Original designer and developer of jcrew.com and the suite of products now known as IBM InfoSphere
DataStage
 Creator of the Enterprise Architecture Management Framework (EAMF) and main contributor to the creation
of various maturity assessment methodology
 Developed partnerships between several companies and New York University to incubate new
methodologies (e.g., EA maturity assessment methodology), develop proof of concept software, recruit
skilled graduates, and increase the companies’ visibility
Who am I?
4
How to reach me?
Cell (212) 203-5004
Email jcf@cs.nyu.edu
AIM, Y! IM, ICQ jcf2_2003
MSN IM jcf2_2003@yahoo.com
LinkedIn http://www.linkedin.com/in/jcfranchitti
Twitter http://twitter.com/jcfranchitti
Skype jcf2_2003@yahoo.com
Come on…what else
did you expect?
Woo hoo…find the word
of the day…
5
What is the class about?
 Course description and syllabus:
» http://www.nyu.edu/classes/jcf/CSCI-GA.2440-001/
» http://www.cs.nyu.edu/courses/spring15/CSCI-GA.2440-001/
 Textbooks:
» Software Engineering: A Practitioner’s Approach
Roger S. Pressman
McGraw-Hill Higher International
ISBN-10: 0078022126, ISBN-13: 978-0078022128, 8th Edition (01/23/14)
» Recommended:
» Code Complete: A Practical Handbook of Software Construction, 2nd Edition
» The Mythical Man-Month: Essays on Software Engineering, 2nd Edition
6
Icons / Metaphors
6
Common Realization
Information
Knowledge/Competency Pattern
Governance
Alignment
Solution Approach
7
Helpful Preliminary Knowledge
 Business Process Modeling (BPM)
 Object-Oriented Analysis and Design (OOAD)
 Object-oriented technology experience
 Software development experience as a
software development team member in the
role of business analyst, developer, or project
manager
 Implementation language experience (e.g.,
C++, Java, C#)
 Note: Knowledge of BPMN, UML or a specific
programming language is not required
8
Course Objectives (1/3)
 Present modern software engineering techniques and
examines the software life-cycle, including software
specification, design implementation, testing and
maintenance
 Describe and compare various software development
methods and understand the context in which each
approach might be applicable
 Develop students’ critical skills to distinguish sound
development practices from ad-hoc practices, judge
which technique would be most appropriate for solving
large-scale software problems, and articulate the
benefits of applying sound practices
9
 Expand students’ familiarity with mainstream languages
used to model and analyze processes and object designs
(e.g., BPMN, UML).
 Demonstrate the importance of formal/executable
specifications of object models, and the ability to verify the
correctness/completeness of solution by executing the
models.
 Explain the scope of the software maintenance problem
and demonstrate the use of several tools for reverse
engineering software.
Course Objectives (2/3)
10
 Develop students’ ability to evaluate the effectiveness of an
organization’s software development practices, suggest
improvements, and define a process improvement strategy
 Introduce state-of-the-art tools and techniques for large-
scale development
 Implement major software development methods in
practical projects and motivate discussion via group
presentations
Course Objectives (3/3)
11
Software Requirements
 Software tools will be available from the Internet or
from the course Web site under demos as a choice
of freeware or commercial tools
 Business and Application Modeling Tools
 Software Development Tools
 Workflow Management Frameworks
 etc.
 References will be provided on the course Web site
12
Important Overarching Rule for SE Practitioners
 Recognize and Adopt “Paradigm Shifts”
 http://vimeo.com/103246683
 https://www.youtube.com/watch?v=wOXWSg_PyTQ
 https://www.youtube.com/watch?v=Aesl6HeiwOg
 https://www.youtube.com/watch?v=x0iRj8_9KhA&index=2&list=PLBCCA5F25EF30184C
13
2 Software Engineering Fundamentals
Agenda
1 Instructor and Course Introduction
4 Summary and Conclusion
3 Towards a Pattern-Driven SE Methodology
14
Software Engineering Discipline
Software Development Challenges
The Human Side of Software Development
Refining the Software Engineering Discipline
Agenda – Software Engineering Fundamentals
Software Engineering Scope
2 Software Engineering Fundamentals
Software Engineering Best Practices ala Rational
Rational Unified Process
Introduction to Agile Software Engineering
15
What is Software? (1/2)
Software is:
(1)instructions (computer programs) that when
executed provide desired features, function,
and performance;
(2) data structures that enable the programs to
adequately manipulate information;
(3) documentation that describes the
operation and use of the programs.
16
What is Software? (2/2)
 Software is developed or engineered, it is not
manufactured in the classical sense.
 Software doesn't "wear out."
 Although the industry is moving toward component-
based construction, most software continues to be
custom-built.
17
Wear vs. Deterioration
18
 The economies of ALL developed nations are
dependent on software
 More and more systems are software-controlled
 Software engineering is concerned with theories,
methods and tools for professional software
development
 Software engineering expenditure represents a
significant fraction of GNP in all developed countries
 GNP stands for Gross National Product. GNP per capita
is the dollar value of a country’s final output of goods and
services in a year, divided by its population. It reflects the
average income of a country’s citizens.
Software Engineering
19
 Software costs often dominate system costs.
 The costs of software on a PC are often greater
than the hardware cost
 Software costs more to maintain than it does
to develop
 For systems with a long life, maintenance costs
may be several times development costs
 Software engineering is concerned with cost-
effective software development
Software Costs
20
Software Products
 Generic products
 Stand-alone systems which are produced by a
development organization and sold on the open
market to any customer
 Bespoke (customized) products
 Systems which are commissioned by a specific
customer and developed specially by some
contractor
 Most software expenditure is on generic
products but most development effort is on
bespoke systems
21
Software Applications
 System software
 Application software
 Engineering/scientific
software
 Embedded software
 Product-line software
 WebApps (Web
applications)
 AI software
22
Software—New Categories
 Open world computing - pervasive, distributed
computing
 Ubiquitous computing - wireless networks
 Netsourcing - the Web as a computing engine
 Open source - ”free” source code open to the
computing community (a blessing, but also a
potential curse!)
 Also …
»Data mining
»Grid computing
»Cognitive machines
»Software for nanotechnologies
23
Legacy Software
 software must be adapted to meet the
needs of new computing environments
or technology
 software must be enhanced to
implement new business requirements
 software must be extended to make it
interoperable with other more modern
systems or databases
 software must be re-architected to
make it viable within a network
environment
Why must it change?
24
Software Product Attributes
 Maintainability
 It should be possible for the software to evolve
to meet changing requirements
 Dependability
 The software should not cause physical or
economic damage in the event of failure
 Efficiency
 The software should not make wasteful use of
system resources
 Usability
 Software should have an appropriate user
interface and documentation
25
Importance of Product Characteristics
 The relative importance of these
characteristics depends on the product and
the environment in which it is to be used
 In some cases, some attributes may
dominate
 In safety-critical real-time systems, key
attributes may be dependability and efficiency
 Costs tend to rise exponentially if very high
levels of any one attribute are required
26
Efficiency Costs
Cost
Efficiency
27
Characteristics of WebApps (1/2)
 Network intensiveness. A WebApp resides on a network and must
serve the needs of a diverse community of clients.
 Concurrency. A large number of users may access the WebApp at
one time.
 Unpredictable load. The number of users of the WebApp may vary
by orders of magnitude from day to day.
 Performance. If a WebApp user must wait too long (for access, for
server-side processing, for client-side formatting and display), he or
she may decide to go elsewhere.
 Availability. Although expectation of 100 percent availability is
unreasonable, users of popular WebApps often demand access on
a “24/7/365” basis.
 Data driven. The primary function of many WebApps is to use
hypermedia to present text, graphics, audio, and video content to
the end-user.
 Content sensitive. The quality and aesthetic nature of content
remains an important determinant of the quality of a WebApp.
28
Characteristics of WebApps (2/2)
 Continuous evolution. Unlike conventional application software
that evolves over a series of planned, chronologically-spaced
releases, Web applications evolve continuously
 Immediacy. Although immediacy—the compelling need to get
software to market quickly—is a characteristic of many application
domains, WebApps often exhibit a time to market that can be a
matter of a few days or weeks
 Security. Because WebApps are available via network access, it
is difficult, if not impossible, to limit the population of end-users
who may access the application
 Aesthetics. An undeniable part of the appeal of a WebApp is its
look and feel
29
Summary of Sub-Section’s Key Points
 Software engineering is concerned with the
theories, methods and tools for developing,
managing and evolving software products
 Software products consist of programs and
documentation
 Product attributes include maintainability,
dependability, efficiency and usability
30
Software Engineering Discipline
Software Development Challenges
The Human Side of Software Development
Refining the Software Engineering Discipline
Agenda – Software Engineering Fundamentals
Software Engineering Scope
2 Software Engineering Fundamentals
Software Engineering Best Practices ala Rational
Rational Unified Process
Introduction to Agile Software Engineering
31
The Software Process
 Structured set of activities required to develop a
software system
 Specification
 Design
 Validation
 Evolution
 Activities vary depending on the organization
and the type of system being developed
 Software process must be explicitly modeled if it
is to be managed
32
Process Characteristics (1/2)
 Understandability
 Is the process defined and understandable?
 Visibility
 Is the process progress externally visible?
 Supportability
 Can the process be supported by CASE tools?
 Acceptability
 Is the process acceptable to those involved in it?
33
Process Characteristics (2/2)
 Reliability
 Are process errors discovered before they result
in product errors?
 Robustness
 Can the process continue in spite of unexpected
problems?
 Maintainability
 Can the process evolve to meet changing
organizational needs?
 Rapidity
 How fast can the system be produced?
34
Engineering Process Model
 Specification
 Set out the requirements and constraints on the system
 Design
 Produce a paper model of the system
 Manufacture
 Build the system
 Test
 Check if the system meets the required specifications
 Install
 Deliver the system to the customer and ensure it is operational
 Maintain
 Repair faults in the system as they are discovered
35
Software Process Models Characteristics
 Normally, specifications are
incomplete/anomalous
 Very blurred distinction between
specification, design and manufacturing
 No physical realization of the system for
testing
 Software does not wear out
 Maintenance does not mean component
replacement
36
Generic Software Process Models
 Waterfall model
 Separate and distinct phases of specification and
development
 Evolutionary development
 Specification and development are interleaved
 Formal transformation
 A mathematical system model is formally
transformed to an implementation
 Reuse-based development
 The system is assembled from existing components
37
Waterfall Model
Requirements
definition
System and
software design
Implementation
and unit testing
Integration and
system testing
Operation and
maintenance
38
Waterfall Model Characteristics and Limitations
 Phases:
 Requirements analysis and definition
 System and software design
 Implementation and unit testing
 Integration and system testing
 Operation and maintenance
 The drawback of the waterfall model is
the difficulty of accommodating change
after the process is underway
39
Evolutionary Development
Validation
Final
version
Development
Intermediate
versions
Specification
Initial
version
Outline
description
Concurrent
activities
40
Evolutionary Development Characteristics
 Exploratory prototyping
 Objective is to work with customers and to
evolve a final system from an initial outline
specification
 Should start with well-understood requirements
 Throw-away prototyping
 Objective is to understand the system
requirements
 Should start with poorly understood
requirements
41
Evolutionary Development Limitations
 Problems
 Lack of process visibility
 Systems are often poorly structured
 Requires Special skills (e.g., languages for rapid
prototyping) may be required
 Applicability
 For small or medium-size interactive systems
 For parts of large systems (e.g. the user
interface)
 For short-lifetime systems
42
Summary of Sub-Section’s Key Points
 The software process consists of those
activities involved in software development
 The waterfall model considers each process
activity as a discrete phase
 Evolutionary development considers process
activities as concurrent
43
Software Engineering Discipline
Software Development Challenges
The Human Side of Software Development
Refining the Software Engineering Discipline
Agenda – Software Engineering Fundamentals
Software Engineering Scope
2 Software Engineering Fundamentals
Software Engineering Best Practices ala Rational
Rational Unified Process
Introduction to Agile Software Engineering
44
Inherent Risks
(http://www.ibm.com/developerworks/rational/library/1719.html)
 Sponsorship
 Budget
 Culture
 Business Understanding
 Priorities
 Business changes
 Features
 Schedule slips
 Methodology Misuse
 Software Quality
45
Symptoms of Software Development Problems
 User or business needs not met
 Requirements churn
 Modules don’t integrate
 Hard to maintain
 Late discovery of flaws
 Poor quality of end-user experience
 Poor performance under load
 No coordinated team effort
 Build-and-release issues
46
Trace Symptoms to Root Causes
Develop Iteratively
Manage Requirements
Use Component Architectures
Model Visually (e.g., UML)
Continuously Verify Quality
Manage Change
Needs not met
Requirements churn
Modules don’t fit
Hard to maintain
Late discovery
Poor quality
Poor performance
Colliding developers
Build-and-release
Insufficient requirements
Ambiguous communications
Brittle architectures
Overwhelming complexity
Undetected inconsistencies
Poor testing
Subjective assessment
Waterfall development
Uncontrolled change
Insufficient automation
Symptoms Root Causes Best Practices
47
Risk Management
 Perhaps the principal task of a manager is to
minimize risk
 The 'risk' inherent in an activity is a measure
of the uncertainty of the outcome of that
activity
 High-risk activities cause schedule and cost
overruns
 Risk is related to the amount and quality of
available information
 The less information, the higher the risk
48
Process Model Risk Problems
 Waterfall
 High risk for new systems because of
specification and design problems
 Low risk for well-understood developments
using familiar technology
 Prototyping
 Low risk for new applications because
specification and program stay in step
 High risk because of lack of process visibility
 Transformational
 High risk because of need for advanced
technology and staff skills
49
Software Engineering Discipline
Software Development Challenges
The Human Side of Software Development
Refining the Software Engineering Discipline
Agenda – Software Engineering Fundamentals
Software Engineering Scope
2 Software Engineering Fundamentals
Software Engineering Best Practices ala Rational
Rational Unified Process
Introduction to Agile Software Engineering
50
Hybrid Process Models
 Large systems are usually made up of
several sub-systems
 The same process model need not be
used for all subsystems
 Prototyping should be used for high-
risk specifications
 Waterfall model should be used for
well-understood developments
51
Spiral Model of the Software Process
Risk
analysis
Risk
analysis
Risk
analysis
Risk
anal
ysis Proto-
type 1
Prototype 2
Prototype 3
Opera-
tional
protoype
Concept of
Operation
Simulations, models, benchmarks
S/W
requirements
Requirement
validation
Design
V&V
Product
design Detailed
design
Code
Unit test
Integration
test
Acceptance
test
Service Develop, verify
next-level product
Evaluate alternatives
identify, resolve risks
Determine objectives
alternatives and
constraints
Plan next phase
Integration
and test plan
Development
plan
Requirements plan
Life-cycle plan
REVIEW
52
Phases of the Spiral Model
 Objective setting
 Specific objectives for the project phase are
identified
 Risk assessment and reduction
 Key risks are identified, analyzed and
information is sought to reduce these risks
 Development and validation
 An appropriate model is chosen for the next
phase of development.
 Planning
 The project is reviewed and plans drawn up for
the next round of the spiral
53
Template for a Spiral Round
 Quality Improvement Focus
 Objectives
 Constraints
 Alternatives
 Risk Reduction Focus
 Risk Assessment
 Risk resolution
 Plan-Do-Check-Act (PDCA) Approach
 Results
 Plans
 Commitment
54
Quality Improvement Focus
 Objectives
 Significantly improve software quality
 Constraints
 Within a three-year timescale
 Without large-scale capital investment
 Without radical change to company standards
 Alternatives
 Reuse existing certified software
 Introduce formal specification and verification
 Invest in testing and validation tools
55
 Risk Assessment
 No cost effective quality improvement
 Possible quality improvements may increase
costs excessively
 New methods might cause existing staff to leave
 Risk resolution
 Literature survey
 Pilot project
 Survey of potential reusable components
 Assessment of available tool support
 Staff training and motivation seminars
Risk Reduction Focus
56
 Results
 Experience of formal methods is limited - very
hard to quantify improvements
 Limited tool support available for company-wide
standard development system
 Reusable components available but little
support exists in terms of reusability tools
 Plans
 Explore reuse option in more detail
 Develop prototype reuse support tools
 Explore component certification scheme
 Commitment
 Fund further 18-month study phase
PDCA Approach
57
Template for a Spiral Round at Work - Catalogue Spiral (1/3)
 Quality Improvement Focus
 Objectives
 Procure software component catalogue
 Constraints
 Within a year
Must support existing component types
Total cost less than $100, 000
 Alternatives
 Buy existing information retrieval software
 Buy database and develop catalogue using database
 Develop special purpose catalogue
58
 Risks Reduction Focus
 Risks assessment
 May be impossible to procure within constraints
 Catalogue functionality may be inappropriate
 Risk resolution
 Develop prototype catalogue (using existing 4GL and
an existing DBMS) to clarify requirements
 Commission consultants report on existing information
retrieval system capabilities.
 Relax time constraint
Template for a Spiral Round at Work - Catalogue Spiral (2/3)
59
 PDCA Approach
 Results
 Information retrieval systems are inflexible.
 Identified requirements cannot be met.
 Prototype using DBMS may be enhanced to complete
system
 Special purpose catalogue development is not cost-
effective
 Plans
 Develop catalogue using existing DBMS by enhancing
prototype and improving user interface
 Commitment
 Fund further 12 month development
Template for a Spiral Round at Work - Catalogue Spiral (3/3)
60
Spiral Model Flexibility
 Hybrid models accommodated for
different parts of a project:
 Well-understood systems
 Low technical risk
 Use Waterfall model as risk analysis phase is relatively
cheap
 Stable requirements and formal
specification with safety criticality
 Use formal transformation model
 High UI risk with incomplete specification
 Use Prototyping model
61
Spiral Model Advantages
 Focuses attention on reuse options
 Focuses attention on early error
elimination
 Puts quality objectives up front
 Integrates development and
maintenance
 Provides a framework for
hardware/software development
62
Spiral Model Limitations
 Contractual development often specifies
process model and deliverables in
advance
 Requires risk assessment expertise
 Needs refinement for general use
63
Process Visibility as a Process Model Metric
 Software systems are intangible so
managers need documents to assess
progress
 However, this may cause problems
 Timing of progress deliverables may not match
the time needed to complete an activity
 The need to produce documents places
constraints on process iterations
 The time taken to review and approve
documents is significant
 Waterfall model is still the most widely used
deliverable-based model
64
Sample Set of Waterfall Model Documents
Activity Output doc uments
Require ments analysis Fe asibility study , Outline requireme nts
Require ments de finition Require ments docum ent
Sy stem spe cific ation Functiona l spe cific ation, Ac cepta nc e te st plan
Draft user ma nua l
Architec tural design Architec tural specification, Sy ste m test pla n
Interfa ce de sign Interfa ce spe cific ation, Inte gration test plan
Detailed de sign Design specification, Unit test pla n
Coding Progra m code
Unit testing Unit test report
Module testing Module test re port
Integration te sting Integration te st report, Fina l use r m anual
Sy stem testing Sy stem test re port
Acc eptance testing Fina l sy ste m plus doc ume ntation
65
Process Model Visibility
Process model Process visibility
Waterfall model Good visibility, each activity produces some
deliverable
Evolutionary
development
Poor visibility, uneconomic to produce
documents during rapid iteration
Formal
transformations
Good visibility, documents must be produced
fromeach phase for the process to continue
Reuse-oriented
development
Moderate visibility, it may be artificial to
produce documents describing reuse and
reusable components.
Spiral model Good visibility, each segment and each ring
of the spiral should produce some document.
66
Summary of Sub-Section’s Key Points
 The spiral process model is risk-driven
 Process visibility involves the creation
of deliverables from activities
67
Software Engineering Discipline
Software Development Challenges
The Human Side of Software Development
Refining the Software Engineering Discipline
Agenda – Software Engineering Fundamentals
Software Engineering Scope
2 Software Engineering Fundamentals
Software Engineering Best Practices ala Rational
Rational Unified Process
Introduction to Agile Software Engineering
68
Professional Responsibility
 Software engineers should not just be
concerned with technical
considerations. They have wider
ethical, social and professional
responsibilities
 Not clear what is right or wrong about
the following issues:
 Development of military systems
 Whistle blowing
 What is best for the software engineering
profession
69
Ethical Issues
 Confidentiality
 Competence
 Intellectual property rights
 Computer misuse
70
Summary of Sub-Section’s Key Points
 Software engineers have ethical, social
and professional responsibilities
71
Software Engineering Discipline
Software Development Challenges
The Human Side of Software Development
Refining the Software Engineering Discipline
Agenda – Software Engineering Fundamentals
Software Engineering Scope
2 Software Engineering Fundamentals
Software Engineering Best Practices ala Rational
Rational Unified Process
Introduction to Agile Software Engineering
72
Section Outline
 Identify Steps for Understanding and Solving
Software Engineering Problems
 Explain the IBM Rational “Six Best Practices”
73
Best Practices
Process Made Practical
Develop Iteratively
Manage Requirements
Use Component
Architectures
Model Visually (UML)
Continuously Verify Quality
Manage Change
Practice 1: Develop Iteratively
74
Waterfall Development Characteristics
 Delays confirmation of
critical risk resolution
 Measures progress by
assessing work-
products that are poor
predictors of time-to-
completion
 Delays and aggregates
integration and testing
 Precludes early
deployment
 Frequently results in
major unplanned
iterations
Code and unit test
Design
Subsystem integration
System test
Waterfall Process
Requirements
analysis
75
Iterative Development Produces Executable Releases
Initial
Planning
Planning
Requirements
Analysis & Design
Implementation
Deployment
Test
Evaluation
Management
Environment
Each iteration
results in an
executable release
76
Risk Profiles
Risk Reduction
Time
Iterative Risk
Waterfall Risk
Risk
77
Practice 2: Manage Requirements
Best Practices
Process Made Practical
Develop Iteratively
Manage Requirements
Use Component
Architectures
Model Visually (UML)
Continuously Verify Quality
Manage Change
78
Requirements Management
 Making sure you
 Solve the right problem
 Build the right system
 By taking a systematic approach to
 eliciting
 organizing
 documenting
 managing
the changing requirements of a
software application.
79
Aspects of Requirements Management
 Analyze the Problem
 Understand User Needs
 Define the System
 Manage Scope
 Refine the System Definition
 Build the Right System
80
Problem
Solution
Space
Problem
Space
Needs
Features
Use Cases and
Software
Requirements
Test
Procedures Design User
Docs
The
Product
To Be
Built
Map of the Territory
81
Practice 3: Use Component Architectures
Best Practices
Process Made Practical
Develop Iteratively
Manage Requirements
Use Component
Architectures
Model Visually (UML)
Continuously Verify Quality
Manage Change
82
Resilient, Component-Based Architectures
 Resilient
 Meets current and future requirements
 Improves extensibility
 Enables reuse
 Encapsulates system dependencies
 Component-based
 Reuse or customize components
 Select from commercially-available
components
 Evolve existing software incrementally
83
Purpose of a Component-Based Architecture
 Basis for reuse
 Component reuse
 Architecture reuse
 Basis for project management
 Planning
 Staffing
 Delivery
 Intellectual control
 Manage complexity
 Maintain integrity
System-
software
Middleware
Business-
specific
Application-
specific
Component-based
Architecture with
layers
84
Practice 4: Model Visually (UML)
Best Practices
Process Made Practical
Develop Iteratively
Manage Requirements
Use Component
Architectures
Model Visually (UML)
Continuously Verify Quality
Manage Change
85
Why Model Visually?
 Capture structure and behavior
 Show how system elements fit together
 Keep design and implementation
consistent
 Hide or expose details as appropriate
 Promote unambiguous communication
 UML: one language for all practitioners
86
Visual Modeling with UML 1.X
 Multiple views
 Precise syntax
and semantics
Activity
Diagrams
Models
Sequence
Diagrams
Collaboration
Diagrams
Statechart
Diagrams
Deployment
Diagrams
Component
Diagrams
Object
Diagrams
Class
Diagrams
Use-Case
Diagrams
Static
Diagrams
Dynamic
Diagrams
87
Visual Modeling Using UML 1.X Diagrams
Actor A
Use Case 1
Use Case 2
Actor B
user : Clerk
mainWnd: MainWnd
fileMgr : FileMgr
repository : Repository
document : Document
gFile : GrpFile
9: sortByName ( )
L
1: Doc view request ( )
2: fetchDoc( )
5: readDoc ( )
7: readFile ( )
3: create ( )
6: fillDocument ( )
4: create ( )
8: fillFile ( )
Window95
¹®¼°ü¸®
Ŭ¶óÀ̾ðÆ®.EXE
Windows
NT
¹®¼°ü¸® ¿£Áø.EXE
Windows
NT
Windows95
Solaris
ÀÀ¿ë¼¹ö.EXE
Alpha
UNIX
IBM
Mainframe
µ¥ÀÌŸº£À̽º¼¹ö
Windows95
¹®¼°ü¸® ¾ÖÇø´
Document
FileManager
GraphicFile
File
Repository DocumentList
FileList
user
mainWnd fileMgr :
FileMgr
repository
document :
Document
gFile
1: Doc view request ( )
2: fetchDoc( )
3: create ( )
4: create ( )
5: readDoc ( )
6: fillDocument ( )
7: readFile ( )
8: fillFile ( )
9: sortByName ( )
ƯÁ¤¹®¼¿¡ ´ëÇÑ º¸±â¸¦
»ç¿ëÀÚ°¡ ¿äûÇÑ´Ù.
ÈÀϰü¸®ÀÚ´Â Àоî¿Â
¹®¼ÀÇ Á¤º¸¸¦ ÇØ´ç ¹®¼
°´Ã¼¿¡ ¼³Á¤À» ¿äûÇÑ´Ù.
È¸é °´Ã¼´Â ÀоîµéÀÎ
°´Ã¼µé¿¡ ´ëÇØ À̸§º°·Î
Á¤·ÄÀ» ½ÃÄÑ È¸é¿¡
º¸¿©ÁØ´Ù.
Forward and
Reverse
Engineering
Target
System
Openning
Writing
Reading
Closing
add file [ numberOffile==MAX ] /
flag OFF
add file
close file
close file
Use Case 3
Use-case
diagram
Class diagram
Collaboration
diagram
Sequence
diagram
Component
diagram
Statechart
diagram
GrpFile
read( )
open( )
create( )
fillFile( )
rep
Repository
name : char * = 0
readDoc( )
readFile( )
(fromPersistence)
FileMgr
fetchDoc( )
sortByName( )
DocumentList
add( )
delete( )
Document
name : int
docid : int
numField : int
get( )
open( )
close( )
read( )
sortFileList( )
create( )
fillDocument( )
fList
1
FileList
add( )
delete( )
1
File
read( )
read() fill the
code..
Deployment
diagram
88
UML 1.X Notation Baseline
Diagram Name Type Phase
Use Case Static*
Analysis
Class Static Analysis
Activity Dynamic**
Analysis
State-Transition Dynamic Analysis
Event Trace (Interaction) Dynamic Design
Sequence Dynamic Design
Collaboration Dynamic Design
Package Static Delivery
Deployment Dynamic Delivery
*
Static describes structural system properties
**
Dynamic describes behavioral system properties.
89
UML 1.X Diagrams
UML 1.X defines twelve types of diagrams, divided into three
categories
 Four diagram types represent static application structure:
 Class Diagram
 Object Diagram
 Component Diagram
 Deployment Diagram
 Five represent different aspects of dynamic behavior
 Use Case Diagram
 Sequence Diagram
 Activity Diagram
 Collaboration Diagram
 Statechart Diagram
 Three represent ways to organize and manage your
application modules
 Packages
 Subsystems
 Models
Source: http://www.omg.org/gettingstarted/what_is_uml.htm
90
UML 1.X Views
 Approach
 UML 1.X defines five views that let you look at overall models from various
angles
 Layering architectural principles is used to allocate pieces of functionality to
subsystems
 Partitioning is used to group related pieces of functionality into packages
within subsystems
 Views and Related Diagrams
 Use Case View (application functionality)
 Use Case Diagram
 Logical View (static application structure)
 Class Diagram
 Object Diagram
 Process View (dynamic application behavior)
 Sequence Diagram
 Activity Diagram
 Collaboration Diagram
 Statechart Diagram
 Implementation View (application packaging)
 Component Diagram
 Deployment View (application delivery)
 Deployment Diagram
91
Functional
view
Static
View
Behavioral
View
Architectural
View
Play
Player
View High Score
Find Beverage
Pour Coffee Drink Beverage
Get Can of Cola
Get Cups
Add Water to Reservoir
Put Coffee in Filter
Put Filter in Machine
Turn on Machine
Brew Coffee
^coffeePot.TurnOn
[ no cola ]
[ found cola ]
[ no coffee ]
[ found coffee ]
light goes out Momo :Player
game :Dice
Game
d1 :Die
d2 :Die
2:r1=roll( )
3:r2=roll( )
1:play()
d1 : Die
: DiceGame
: Player
d2 : Die
1: play( )
2: roll( )
3: roll( )
Ready to play Player ready
entry: get player name
In progress
entry: turn++
/ Start game
roll dices[ turn<10 ]
start
[ turn>=10 ]
Cancel play
cancel
Quit
DicePersist Displayable
Dice
Vizualization
PersistKit
DiceSystem
Observable
Observer
Random
system
Randomizer
HighScore
Game Computer
SGBD computer
JBDC
Connection
Play the
game File
System
Save/load the
highscore
Maybe a Remote
a file system
Consistency
Coverage
Need to Maintain Consistency and Coverage Across UML 1.X Views
92
New in UML 2.X (1/2)
(http://www.omg.org/gettingstarted/what_is_uml.htm)
 UML 2.X Profiles
 The new language goes well beyond the Classes and Objects well-modeled
by UML 1.X to add the capability to represent not only behavioral models,
but also architectural models, business process and rules, and other models
used in many different parts of computing and even non-computing
disciplines
 Nested Classifiers
 Every model building block (e.g., classes, objects, components, behaviors
such as activities and state machines) is a classifier
 A set of classes may be nested inside the component that manages them, or a
behavior (such as a state machine) may be embedded inside the class or
component that implements it
 Capability may be used to build up complex behaviors from simpler ones (i.e., the
capability that defines the Interaction Overview Diagram)
 Can layer different levels of abstraction in multiple ways:
 For example, you can build a model of your Enterprise, and zoom in to embedded site
views, and then to departmental views within the site, and then to applications within a
department
 Alternatively, you can nest computational models within a business process model.
OMG's Business Enterprise Integration Domain Task Force (BEI DTF) is currently
working on several interesting new standards in business process and business rules
93
New in UML 2.X (2/2)
(http://www.omg.org/gettingstarted/what_is_uml.htm)
 Improved Behavioral Modeling
 In UML 1.X, the different behavioral models were independent, but in UML
2.0, they all derive from a fundamental definition of a behavior (except for
the Use Case, which is subtly different but still participates in the new
organization)
 Improved relationship between Structural and Behavioral Models
 UML 2.0 makes it possible to designate that a behavior represented by (for
example) a State Machine or Sequence Diagram is the behavior of a class
or a component
 Object Constraint Language (OCL) and Action Semantics
» During the upgrade process, several additions to the language were
incorporated into it, including the Object Constraint Language (OCL) and
Action Semantics.
94
Practice 5: Continuously Verify Quality
Best Practices
Process Made Practical
Develop Iteratively
Manage Requirements
Use Component
Architectures
Model Visually (UML)
Continuously
Verify Quality
Manage Change
95
Continuously Verify Software Quality
Cost
Transition
Construction
Elaboration
Inception
Software problems are
100 to 1000 times more costly
to find and repair after
deployment
 Cost to Repair Software
 Cost of Lost Opportunities
 Cost of Lost Customers
96
Test All Dimensions of Software Quality
Functionality
Reliability
Performance
Does my application
do what’s required?
Does the system
perform under
production
load?
Verification of each
usage scenario
Verification of
sustained
application
operation
Test performance
under expected &
worst-case load
Does my application
respond acceptably?
97
UML Model
and
Implementation
Tests
Iteration 1
Test Suite 1
Iteration 2
Test Suite 2
Iteration 4
Test Suite 4
Iteration 3
Test Suite 3
Test Each Iteration
98
Practice 6: Manage Change
Best Practices
Process Made Practical
Develop Iteratively
Manage Requirements
Use Component
Architectures
Model Visually (UML)
Continuously Verify Quality
Manage Change
99
ALERT
REPORT
Workspace
Management
Process
Integration
Parallel
Development
Build
Management
CM is more
than just
check-in and
check-out
What Do You Want to Control?
 Changes to enable iterative development
 Secure workspaces for each developer
 Automated integration/build management
 Parallel development
100
Aspects of a Configuration Management (CM) System
 Change Request Management
 Configuration Status Reporting
 Configuration Management (CM)
 Change Tracking
 Version Selection
 Software Manufacturing
101
Unified Change Management
 Management across the lifecycle
 System
 Project Management
 Activity-Based Management
 Tasks
 Defects
 Enhancements
 Progress Tracking
 Charts
 Reports
102
Best Practices Reinforce Each Other
Validates architectural
decisions early on
Addresses complexity of
design/implementation incrementally
Measures quality early and often
Evolves baselines incrementally
Ensures users involved
as requirements evolve
Best Practices
Develop Iteratively
Manage Requirements
Use Component Architectures
Model Visually (UML)
Continuously Verify Quality
Manage Change
103
Software Engineering Discipline
Software Development Challenges
The Human Side of Software Development
Refining the Software Engineering Discipline
Agenda – Software Engineering Fundamentals
Software Engineering Scope
2 Software Engineering Fundamentals
Software Engineering Best Practices ala Rational
Rational Unified Process
Introduction to Agile Software Engineering
104
Section Outline
 Present the IBM Rational Unified Process
within the context of the Six Best Practices
covered in the previous sub-section
105
Foundations of RUP
 Implement Software Engineering Best
Practices:
 Iterative Controlled Development
 Use Case Models for Business
Requirements
 Component Architectures
 Risk Identification, Management &
Mitigation
106
RUP Best Practices Implementation
Best Practices
Process Made Practical
Develop Iteratively
Manage Requirements
Use Component Architectures
Model Visually (UML)
Continuously Verify Quality
Manage Change
107
Achieving Best Practices
 Iterative Approach
 Guidance for activities
and work products
(artifacts)
 Process focus on
architecture
 Use cases which drive
design and
implementation
 Models which abstract
the system
Implementation
Test
Analysis & Design
Requirements
Configuration &
Change Management
108
A Team-Based Definition of Process
 A process defines Who is doing What,
When and How to reach a certain goal.
New or changed
requirements
New or changed
system
Software Engineering
Process
109
Process Structure - Lifecycle Phases
 The Rational Unified Process has four
Phases:
» Inception - Define the scope of project
» Elaboration - Plan project, specify features,
baseline architecture
» Construction - Build the product
» Transition - Transition the product into end
user community
Inception Elaboration Construction Transition
time
110
Phase Boundaries Mark Major Milestones
Inception Elaboration Construction Transition
Lifecycle
Objective
Milestone
Lifecycle
Architecture
Milestone
Initial Operational
Capability
Milestone
Product
Release
time
111
Iterations and Phases
An iteration is a distinct sequence of activities based on
an established plan and evaluation criteria, resulting in an
executable release (internal or external)
Preliminary
Iteration
Architect.
Iteration
Architect.
Iteration
Devel.
Iteration
Devel.
Iteration
Devel.
Iteration
Transition
Iteration
Transition
Iteration
Inception Elaboration Construction Transition
Minor Milestones: Releases
112
Workflows Produce Models
OK
OK
Fail
Realized By
Implemented
By
Verified By
Implementation
Model
Test Model
Design Model
Use-Case
Model
Models
Core Process
Workflows Test
Implemen-
tation
Analysis &
Design
Requirements
Business Use-
Case Model
Business
Modeling
Business
Object Model
B
B
B
B
Realized
By
Automated
By
113
Bringing It All Together: The Iterative Approach
Workflows
group
activities
logically
In an iteration,
you walk
through all
workflows
114
Workflows Guide Iterative Development
Business Modeling:
Workflow Details
Requirements:
Workflow Details
115
Notation
Role
Activity
Artifact
Detail a
Use Case
Use-Case
Package
Use Case
responsible for
Requirements
Specifier
A unit of work a
role may be
asked to perform
A piece of
information that is
produced, modified,
or used by a process
A role that may be
played by an
individual or a team
in the development
organization
116
Resource
Paul
Mary
Joe
Sylvia
Stefan
Roles Are Used for Resource Planning
Each individual in
the project is
assigned to one
or several roles
Role
Designer
Requirements Specifier
System Analyst
Implementer
Architect
Activities
Define Operations
Detail a Use Case
Find Actors and Use Cases
Perform Unit Tests
Identify Design Mechanisms
117
Roles Perform Activities and Produce Artifacts
Example
Requirements:
Workflow Detail
“Define the
System”
Capture a
Common
Vocabulary
System
Analyst
Find Actors
and Use Cases
Use-Case Model
(refined)
Use-Case
Modeling
Guidelines
Supplementary
Specifications
Glossary
(refined)
Glossary
Stakeholder
Requests
Use-Case Model
Manage
Dependencies
Requirements
Management
Plan
Vision
Business
Use-Case Model
Business
Object Model
Requirements
Attributes
Requirements
Attributes
(refined)
Develop
Vision
Business
Rules
Vision
(refined)
Use Case
(outlined)
118
Overview of Rational Unified Process Concepts
119
Summary: Best Practices of Software Engineering
 Best Practices guide software engineering
by addressing root causes
 Best Practices reinforce each other
 Process guides a team on what to do, how
to do it, and when to do it
 The Rational Unified Process is a means
of achieving Best Practices
120
Artifacts Definitions
Investment Concept
Statement Business Case
Outlines the project’s purpose, scope, costs, benefits and risks of the investment and is used
by business sponsors and stakeholders to make an informed decision
Vision Defines the stakeholders view of the product to be developed, contains an outline of the
envisioned core requirements, defines the boundary and primary features of the system and is
used as the basis for more detailed technical requirements
Stakeholders Requests Captures all requests made on the project from stakeholders
Technology Governance
Questionnaire
Assesses the impact of all development projects introducing significant architectural or high-
level design changes
Use Case Specifications Defines the functional requirements for the system with use case diagrams
Supplementary
Specifications
Defines the nonfunctional requirements of the system
Software Architecture
Document
Provides a comprehensive architectural overview of the system, using a number of different
architectural views to depict different aspects of the system – use case view, logical view,
process view, deployment view, implementation view and data view (as needed)
User Acceptance Test Plan Documents a plan to be used to direct user acceptance testing and ensures that all of the
detailed business requirements defined in Inception are tested completely
System Test Plan Outlines and communicates the objectives of the testing effort to gain acceptance and
approval from the stakeholders
Corporate Report Card Provides measurement and explanation of variances between actual and expected project
performance and informs management of project issues (High Risk, High Impact)
Issues List Entails the documentation, review, resolution, and follow-up of project issues
Risk List Details a list of known and open risks to the project, sorted in decreasing order of importance
and associated with specific mitigation strategies or contingency plans
Project Plan / Iteration Plan Details the specific tasks that must be completed by each team member in order to complete a
project
Phase Assessment Review Establishes criteria for determining whether or not a project is ready to move from one phase
to the next phase
Sample RUP Artifacts Definition
121
Phase S M L Artifact Owner
Inception
  
Investment Concept Statement
Business Sponsor (A)
Business Project Manager
Inception

Business Case
Business Sponsor (A)
Business Project Manager
Inception
  
Vision
Business Lead (A)
Technology Project Manager
Inception Vision   Stakeholder Requests Business Lead
Inception
  
Delegated Governance
Questionnaire Technology Project Manager
Elaboration
  
Use Case Specifications
Business Lead (A)
Technology Project Manager
Elaboration
Vision  
Supplementary Specifications
Business Lead (A)
Technology Project Manager
Elaboration
  
Software Architecture Document
Technology Project Manager
Architect
Construction    User Acceptance Test Plan Business Project Manager
Construction   System Test Plan Project Manager
Ongoing    Issues List Project Manager
Ongoing    Risk List Project Manager
Ongoing    Project Plan / Iteration Plan Project Manager
Ongoing
   Phase Assessment Review Project Manager
Ongoing   Corporate Report Card Business Project Manager
A = Approver
Light
Light
Light
Sample RUP Core Artifacts
122
Key Role Definition
Business Sponsor  Establishes the project funding and periodically review the spending progress against the
Investment Opportunity expectations. They consistently champion the project and
associated changes, as well as communicate project progress to Corporate leaders.
Business Lead  Provides project leadership and overall business perspective. This role is responsible for
managing the project risk and working with the team to ensure appropriate
communication of risk mitigation.
 Represents the team to stakeholders and management and influences the strategic and
tactical business decisions pertaining to the project product. This role’s overall goal is to
ensure the business expectations are achieved on time and on budget.
Business Project Manager  Allocates resources, shapes priorities, coordinates interactions with customers and users,
and generally keeps the project team focused on the right goal. The project manager also
establishes a set of practices that ensure the integrity and quality of project artifacts. In
addition, the Business Project Manager plans and conducts the formal review of the use-
case model.
 Leads and coordinates requirements elicitation and use-case modeling by outlining the
system's functionality and delimiting the system; for example, establishing what actors
and use cases exist and how they interact. In addition, this role details the specification
of a part of the organization by describing the workflow of one or several business use
cases.
Technology Project Manager  Allocates resources, shapes priorities, coordinates interactions with customers and users,
and generally keeps the project team focused on the right goal. The technology project
manager also establishes a set of practices that ensure the integrity and quality of project
artifacts.
Architect  Leads and coordinates technical activities and artifacts throughout the project.
 The software architect establishes the overall structure for each architectural view: the
decomposition of the view, the grouping of elements, and the interfaces between these
major groupings. Therefore, in contrast to the other roles, the software architect's view is
one of breadth as opposed to one of depth.
Sample Key Roles/Owners of RUP Artifacts
123
Summary of Sub-Section’s Key Points
 RUP focuses on:
 Iterative Controlled Development
 Use Case Models for Business
Requirements
 Component Architecture
 Risk Identification, Management
&Mitigation
124
Software Engineering Discipline
Software Development Challenges
The Human Side of Software Development
Refining the Software Engineering Discipline
Agenda – Software Engineering Fundamentals
Software Engineering Scope
2 Software Engineering Fundamentals
Software Engineering Best Practices ala Rational
Rational Unified Process
Introduction to Agile Software Engineering
125
Agile Software Engineering
 Agility
 “Ability to create and respond to change in order to
profit in a turbulent business environment”
 Agile Values
 Individual and interactions vs. processes and tools
 Working software vs. comprehensive documentation
 Customer collaboration vs. contract negotiation
 Responding to change vs. following a plan
126
Agile Software Development Ecosystems
 Agile Software Development Ecosystems
(ASDEs) vs. Traditional Software Development
Methodologies
 “Chaordic” perspective
 Product goals are achievable but they are not
predictable
 Processes can aid consistency but they are not
repeatable
 Collaborative values and principles
 Barely sufficient methodology
 Agilists are proponents of ASDEs
127
2 Software Engineering Fundamentals
Agenda
1 Instructor and Course Introduction
4 Summary and Conclusion
3 Towards a Pattern-Driven SE Methodology
128
Section Objectives
 Describe the limitations of legacy and
best practice SDLC methodologies
 Suggest the improved approach that is
covered in the course
 Discuss the approach to follow for the
class project
129
Limitations of Legacy SE Methodologies
 Focused on software solutions
development
 Driven by processes
 Not driven by architecture and/or best
practices altogether (other than initially)
 Focus is on scope, time, cost, and quality
 customer input sparsely considered
 Metaphor:
 “an algorithm without a centralized data
structure to operate on”
130
Limitations of RUP Approach
 Focused on software solutions development
 Driven by best practices
 Driven by workflows (and tools)
 Focus is on scope, time, and cost
 Customer assesses quality and drive change
 Deliver quality software on-time & on-budget
 By enforcing a best practice process that manages
change
 By following a PDCA approach were individuals play
various roles in the overall process
 Gap between Architecture-Driven approach
and Use-Case Driven Modeling
 A “top-down” architectural approach
131
Illustrating the RUP “Gap”
OK
OK
Fail
Realized By
Implemented
By
Verified By
Implementation
Model
Test Model
Design Model
Use-Case
Model
Models
Core Process
Workflows Test
Implemen-
tation
Analysis &
Design
Requirements
Business Use-
Case Model
Business
Modeling
Business
Object Model
B
B
B
B
Realized
By
Automated
By
 Going from business requirements to use cases
requires non-trivial input that is hard/impossible to
predict
132
Limitations of ASDE Approaches
 Focused on software solutions development
 Driven by best practices
 Driven by collaboration between individuals
 Interactions: customer/project team & intra-project team
 Driven by change
 Focus is on quality (test-driven), time, and cost
 Customer drives the scope
 Deliver optimal quality software on-time & on-budget
 By limiting the scope to facilitate change
 By follow an MOB approach were individuals assume full
leadership
 Architectural re-factoring becomes a nightmare
 A “bottom-up architectural approach”
133
Agile Pattern-Driven Architecture (PDA) Approach
 Focused on business solutions development
» SDLC stands for “(Business) Solution Development LifeCycle”
 Seed the Architecture-Driven approach so it does not
operate top-down or bottom-up
» Integrate the Architecture-Driven approach into standard and
business specific architecture-driven workflows
• e.g., AKDAR, GDM, SBAM, PEM, LSS (BPM pattern), CBM (SOA
pattern)
» Use an agile workflow-driven approach rather than rigid processes
» Use architecture-driven approach from business strategy all the
way down to product maintenance
» Subject individuals to ongoing transformation processes
 Flexible RUP-like or ASDE-like focus and introduces
problem pattern set as an additional variable
 Need to deal with individuals reaction to the constant need
to adapt to change
» Build conducive environments (e.g., game-metaphor, etc.)
134
Enterprise Strategy and Business Solutions Alignment Problem
V
i
s
i
o
n
&
S
t
r
a
t
e
g
y
B
u
s
i
n
e
s
s
S
o
l
u
t
i
o
n
D
e
v
e
l
o
p
m
e
n
t
B
u
s
i
n
e
s
s
S
o
l
u
t
i
o
n
M
a
i
n
t
e
n
a
n
c
e
Symptom #1:
Business Solutions
not aligned with
Enterprise strategic
goals
Symptom #2:
Business Solutions
are not delivered in
time and on budget
and/or have poor
quality
Symptom #3:
Business Solutions
are difficult to evolve
Symptom #4:
Business Solutions
are hard to maintain
B
u
s
i
n
e
s
s
S
o
l
u
t
i
o
n
R
e
f
a
c
t
o
r
i
n
g
Enterprise Business Solutions
lack alignment with Enterprise
Driven Initiatives
135
PDA Solution: Enterprise Architecture Management
“Focusing on Business Model Improvements while Maintaining Enterprise Alignment”
V
i
s
i
o
n
&
S
t
r
a
t
e
g
y
B
u
s
i
n
e
s
s
S
o
l
u
t
i
o
n
D
e
v
e
l
o
p
m
e
n
t
B
u
s
i
n
e
s
s
S
o
l
u
t
i
o
n
M
a
i
n
t
e
n
a
n
c
e
B
u
s
i
n
e
s
s
S
o
l
u
t
i
o
n
R
e
f
a
c
t
o
r
i
n
g
Enabler #5:
Incremental Iterative
Enterprise
Transformation
Methodology
Enabler #1:
Best Practice
Process Patterns and
Artifact Types
Enabler #3:
Extensible Framework
for Traceable and
Reusable Artifact
Types and
Methodologies
Enabler #2:
Best Practices
Knowledge Base
Enabler #4:
Design and
Runtime Tools
136
Strategy Enablement Process Patterns and Artifact Types
“Enabler #1”
Enterprise Strategy Enablement Project Strategy Enablement “Whole is Greater than the Sum of the Parts”
+ =>
Process Patterns:
Artifacts:
Traceability:
Reusability:
Legend
Project
Requirements
&
Architectural
Models
Project
Strategy
(EPO)
Requirements
Engineering
(PT)
Business
Architecture
(PT)
(PT)
Information
Architecture
Application
Architecture
(PT)
(PT)
Technology
Architecture
Project
Requirements
Enterprise
Strategy
(SPO)
Enterprise
Governance
(SPO)
Architecture
Integration
(SPO & ARB)
Enterprise
Requirements
&
Architectural
Models
Project
Requirements
Enterprise
Strategy
(SPO)
Enterprise
Governance
(SPO)
Project
Strategy
(EPO)
Requirements
Engineering
(PT)
Business
Architecture
(PT)
(PT)
Information
Architecture
Application
Architecture
(PT)
(PT)
Technology
Architecture
Enterprise
Requirements
&
Architectural
Models
Project
Requirements
&
Architectural
Models
Architecture
Integration
(SPO & ARB)
SPO: Strategic Project Office
ARB: Architecture Review Board
EPO: Execution Project Office
PT: Project Team
137
Strategy Enablement Process Patterns Detailed
A Process Pattern Leads to a Methodology Once Specific Activities are Chosen to Implement a Vision
Strategic Goals Elicitation
(Net Promoter, DMAIC VOC,
Competitive Analysis, etc.)
Goal Decomposition
Business Patterns Elicitation
(e.g., SOA + BPM + BRM + BAM)
Project Roadmap Definition
Gated Governance Management
Program Management
(Context & Phase Planning)
Project Definition
Project Review
Project Reuse Elicitation
Project Activities Management
Configuration Management
Collaboration Management
Enterprise Business Architecture
(Business Architecture Definition/Evolution)
Best Practices Maturity Assessment
Enterprise Governance Definition
(Enterprise Transformation Management,
Governance Process Definition,
Strategic Program Management, etc.)
Project Governance Definition
Requirements Retrieval (Current State)
Requirements Definition (Future State)
Requirements Management
Test Management
(Enterprise) Requirements Traceability
Requirements Model Management
Business Architecture Characterization
Business Architecture Reuse Elicitation
Goal-Driven Decomposition
Business Patterns Elicitation
Business Model Simulation
Business Pattern-Driven Modeling
(e.g., BPM Improvement via DMAIC
Chartering and ROM modeling, SOA
Component Business Modeling, etc.)
Requirements Model Management
(Traceability, Updates, etc.)
Business Architecture Analysis/Design
Business Architecture Deployment
Information Architecture Analysis
Refine Information Management Architecture
Refine UI Management Architecture
Information Architecture Design
UI Management Architecture Design
(Storyboarding, Wire frames definition, etc.)
Product Selection
Best Practices Knowledge Base Management
Portfolio Management
Project Technical Risks Assessment
Project Architecture Review
IT Strategy
Application Architecture Analysis
Reference Architecture Elicitation
Application Architecture Design
(Architectural/Design Patterns Elicitation,
Implementation Patterns Elicitation, etc.)
Product Selection
Information Architecture Deployment
Application Architecture Deployment
Technology Architecture Analysis
Refine Infrastructure Architecture
Technology Architecture Design
(Architectural/Design Patterns Elicitation,
Implementation Patterns Elicitation, etc.)
Product Selection
Technology Infrastructure Deployment
Project
Requirements
Enterprise
Strategy
(SPO)
Enterprise
Governance
(SPO)
Project
Strategy
(EPO)
Requirements
Engineering
(PT)
Business
Architecture
(PT)
(PT)
Information
Architecture
Application
Architecture
(PT)
(PT)
Technology
Architecture
Enterprise
Requirements
&
Architectural
Models
Project
Requirements
&
Architectural
Models
Architecture
Integration
(SPO & ARB)
138
Strategy Enablement Artifact Types Detailed
Rules
Workflow
Project
Requirements
Enterprise
Requirements
&
Architectural
Models
Project
Requirements
&
Architectural
Models
Glossary
Stakeholder Requests
Business Objectives
Features and Events
Use Cases
Business Model
Business or Functional Requirements
Non Functional Requirements
Requirements Types
Software Development Lifecycle Phases
Requirements
Engineering
Location
Organization
Process
Business
Rules
Pattern
/ Product
/ Enterprise Solution Reqs
Business Rules Reqs Repository
Enterprise Solution Patterns Requirements
Enterprise Business Vocabulary Reqs
Business Strategy and Innovation Reqs
Enterprise Requirements
Enterprise Project Requirements
Req. Analysis
Project Bus. Vocabulary Definition
Strategy Definition
Concept Definition
Business Use Case Requirements
Business
Model
Requirements
Requirements
Definition
Requirements Model
Categories
Requirements
Model Engineering
Proj. Bus. Directives
Business Objective
Features and Events
Functional
Requirements
Non- Functional
Requirements
Business Entity Requirements
Business
Process
Requirements
Bus/ Workflow
Rules Reqs
Process
Model
Requirements
Location Requirements
Organizational Requirements
EAMF Catalogs and Enterprise
Requirements Model Categories
Enterprise Glossary
Enterprise Business Rules
Enterprise Solution Patterns
Enterprise Strategies
Pattern
/ Product
/ Enterprise Solutions Catalog
Enterprise Projects
(e.g. , Ent. Worker Services
)
Design
Relationships
Bus. Arch. Engineering
BUC Mdl
Domain Model
Entities
Bus. Problem
Force
Hierarchies
URN Mdl
Candidate
Bus. Arch.
Styles
Candidate
Reference
Projects
Req Mdl Analysis
Bus. Arch.
Analysis Artifacts
Bus. Arch.
Design Artifacts
Analysis
Org. Mdl
Loc. Mdl
BUC Mdl
Loc. Mdl
Org. Mdl
Process Mdl
Capab. Matrix
Reference
EAMF
Project
(s)
Reference
Business
Arch(s)
Candidate
Bus Pattern
Hierarchies
Bus. Pattern
Hierarchies
Bus. Arch.
Model
Bus. Arch.
Patterns
/ Reuse
Constraints
Traceable
Artifacts
Reusable Artifacts
139
Extensible Framework and Best Practices Knowledge Base
“Enablers #2 and #3 (Sample)” – EAMF Framework Summary of Capabilities
 Extension of the TOGAF Industry Standard
 http://www.opengroup.org/togaf/
 Differentiators:
 Business Pattern Oriented Architecture (POA) orientation
 Extensible methodology based on business solution patterns
 Extensible knowledge foundation based on best practices and
ongoing strategies and business solution development
 Artifact Traceability Focus
 Agile Activity-Driven Approach
 Solution Development Lifecycle agnostic
 Solution-Driven Approach
 Tool Agnostic Approach
140
Strategy Enablement From a Tools Perspective
Enabler #4 (Sample): EAMF Framework Implementation
Cognos
Excel
PowerPoint
Visio
EAMF Catalogs Repository
jUCMNav
TeamPlay
EAMF Catalogs Repository
CVS
ClearCase
Livelink/Twiki
Excel
IBM Rational RequisitePro/Telelogic Doors
Proforma Provision
Lombardi BluePrint
jUCMNav
TeamPlay
EAMF Catalogs Repository
Excel
Powerpoint
Visio
IBM Rational RequisitePro
Telelogic Doors
Mercury Test Director
IBM Rational RequisitePro/Telelogic Doors
Proforma Provision
Lombardi BluePrint
jUCMNav
TeamPlay
EAMF Catalogs Repository
Excel
Powerpoint
Visio
etc.
IBM Rational RequisitePro/Telelogic Doors
ERWin Data Modeler
EAMF Catalogs Repository
PowerPoint
Visio
Company Approved SOA Tool Suite
EAMF Product Catalog ApprovedTools
EAMF Catalogs Repository
Powerpoint
Visio
Sparx Systems EA
EAMF Catalog Repository
PowerPoint
Visio
Company Approved SOA Tool Suite
EAMF Product Catalog ApprovedTools
Sparx Systems EA
EAMF Catalog Repository
PowerPoint
Visio
Company Approved SOA Tool Suite
EAMF Product Catalog ApprovedTools
Project
Requirements
Enterprise
Strategy
(SPO)
Enterprise
Governance
(SPO)
Project
Strategy
(EPO)
Requirements
Engineering
(PT)
Business
Architecture
(PT)
(PT)
Information
Architecture
Application
Architecture
(PT)
(PT)
Technology
Architecture
Enterprise
Requirements
&
Architectural
Models
Project
Requirements
&
Architectural
Models
Architecture
Integration
(SPO & ARB)
141
Incremental Iterative Enterprise Transformation Methodology
“Enabler #5”
Initiation:
Assess Maturity
Level & next
achievable level
Preparation:
Train organization as
needed and plan
projects execution
Execution:
Conduct project(s)
using applicable
methodology
Hardening:
Measure Success &
adapt governance
accordingly
Deployment:
Operate at given
maturity level and
assess viability
Initiation
Tollgate Review
Preparation
Tollgate Review
Execution
Tollgate Review
Hardening
Tollgate Review
Deployment
Tollgate Review
For BPM Improvements, the
maturity level may be
assessed via BPMM and Six
Sigma maturity levels
For BPM Improvements,
preparation involves
champion training and
Hoshin planning
Conducting projects may
involves ongoing
organizational training and
reviews
Hardening involves a
consolidation of the SPO
team in charge of Enterprise
governance
Sustaining operation at a given
maturity level may not be possible
due to: changes in the project
roadmap, ongoing SCR/IRs,
evolution of Best Practices, or
perception of customer discontent
Transformation methodology needs
to be applied incrementally to reach
the desired level of Enterprise
maturity established by sponsors
upon the recommendation of experts
(multiple iterations/projects may
need to be conducted)
142
Strategy Enablement At Work
Enterprise business model goal is to sustain
double digit annual growth and align all
business units with that goal
Alignment Execution Methodology moves
onto requirements model engineering
activities and business architecture analysis
and design conducted by project Business
Architects in collaboration with application/
information/technology architects
(requirements model is shared between the
various group and is the central point of
focus for collaboration)
While the business architecture is still being
refined, Alignment Execution Methodology
activities are conducted on the Application
and Information Architecture fronts (business
architecture is “deployed” incrementally and
iteratively on top of the application/
information architecture)
Business unit X consults with the SPO to
identify:
(a) Their current maturity level with respect
to the high-level vision
(b) Business Unit Specific alignment goals
(c) Alignment Elicitation Methodology
SPO conducts a high-level goal
decomposition, consults with the ARB,
matches the business domain forces with
the forces that drive best practice business
reference architectures, and identifies a
high-level vision:
e.g., SOA + BPM + BRM + BAM
With the help of the SPO and the EAM
infrastructure, alignment tenets are identified
by applying goal patterns and best
practices, and the applicable alignment
elicitation methodology is identified
Business unit X applies the alignment
elicitation methodology to identify their
maturity level (i.e., common denominator)
with respect to the high-level vision and a
set of alignment projects/opportunities
SPO, ARB, and Business unit X prioritize the
projects and elevate a subset of them into
the 4-year project roadmap and select an
appropriate alignment execution
methodology (ARB inputs is key to identify
constraints imposed by existing
infrastructure)
Gated execution of multiple projects starts:
Projects that are not aligned with the
Enterprise strategy breach gate 1
Projects that pass through gate 1 are funded
SPO updates the roadmap every six months
to account for changes in strategic directions
Alignment Execution Methodology is applied
to individual projects starting with
requirements engineering activities
conducted by project BAs:
Gate 2 review occurs at the end of the
requirements definition phase (aka.
Inception phase)
On selected project a 3-months timeline is
imposed on the delivery of a CPD prior to
Gate 2 review
While the business/application/information
architectures are still being refined,
Alignment Execution Methodology activities
are conducted on the Technology
Architecture front (application/information
architecture is “deployed” incrementally and
iteratively on top of the technology
architecture
Project
Requirements
Enterprise
Strategy
(SPO)
Enterprise
Governance
(SPO)
Project
Strategy
(EPO)
Requirements
Engineering
(PT)
Business
Architecture
(PT)
(PT)
Information
Architecture
Application
Architecture
(PT)
(PT)
Technology
Architecture
Enterprise
Requirements
&
Architectural
Models
Project
Requirements
&
Architectural
Models
Architecture
Integration
(SPO & ARB)
1
2
3
4
5
6
7
8
9
10
11
143
Enterprise Architecture Management
EAMF Activities Integrate Seamlessly with the Company X Project Lifecycle
E
A
M
F
Disciplines
&
Process Workflows
Supporting
Workflows
Initiation Stage
Planning
Stage
Design Stage
Concept Phase Elaboration Phase
Build/Test Stage
Construction
Phase
Testing
Phase
Install/Close
Stage
ROI/Benefits
Stage
Iter.
#1
...
Iter.
#2
Iter.
#n
Iter.
#n+1
...
Iter.
#m
Iter.
#m+1
Iter.
#m+2
Administration
Management
Environment
Planning
Req. Engineering
HL Analysis
HL Design
Det. Analysis
Det. Design
Architecture
Implementation
Product Mapping
Architecture
Deployment
Application/Tests
Design
Deployment/Test
Implementation/Test
: ESLM/WITTS
: Sep. of Funds
: Pay Code Aut.
Project Activity Threads:
Production
Elev. Phase
Warranty
Phase
144
Enterprise Architecture Management
Integration with the Company X Project Lifecycle all
Technology Services
EAMF (Design Perspective)
Development Tools
Design Tools
Architecture Tools
Solution Development Lifecycle (Partial View)
Stage
2
Stage
1
Project Plan
Business Project List
defines
defines
Select
Architectural
Pattern(s)
(Best Practices)
Determine
Reference
Architecture(s)
Select Design
Pattern
Select
Implementation
Pattern
Determine
Reference
Implementation
Business
Requirements
Solution
Architecture
uses
Project Manager (EPO)
uses
Get Project
Charter
Stage
3
Technical Design
Technical Lead
uses
uses
defines
Select
Implementation
Idiom (sample)
Stage
4
Software
uses
Developer
uses
Builds & Deploys
uses
Elaborated
Requirements
Stage
5
Automated Test
builds and executes
Tester
uses
Project Architects
Select Code
Generation Tool
Select Technical
Service
uses
Search Available
Technical
Services
Architecture Design Heuristics:
Simplicity
Maintainability
Flexibility/Extensibility (without complexity)
Scalability
Availability
etc.
realizes
uses
Business & Technology Alignment
Tactically Driven
Accidental Architectures
Difficult to maximize technology investment across enterprise
Business Analyst
follows elicits elicits uses
collaborates with collaborates with collaborates with
145
2 Software Engineering Fundamentals
Agenda
1 Instructor and Course Introduction
4 Summary and Conclusion
3 Towards a Pattern-Driven SE Methodology
146
Course Assignments
 Individual Assignments
 Reports based on case studies / class presentations
 Project-Related Assignments
 All assignments (other than the individual assessments) will
correspond to milestones in the team project.
 As the course progresses, students will be applying various
methodologies to a project of their choice. The project and related
software system should relate to a real-world scenario chosen by each
team. The project will consist of inter-related deliverables which are
due on a (bi-) weekly basis.
 There will be only one submission per team per deliverable and all
teams must demonstrate their projects to the course instructor.
 A sample project description and additional details will be available
under handouts on the course Web site
147
Team Project
 Project Logistics
 Teams will pick their own projects, within certain constraints: for instance,
all projects should involve multiple distributed subsystems (e.g., web-
based electronic services projects including client, application server, and
database tiers). Students will need to come up to speed on whatever
programming languages and/or software technologies they choose for their
projects - which will not necessarily be covered in class.
 Students will be required to form themselves into "pairs" of exactly two (2)
members each; if there is an odd number of students in the class, then one
(1) team of three (3) members will be permitted. There may not be any
"pairs" of only one member! The instructor and TA(s) will then assist the
pairs in forming "teams", ideally each consisting of two (2) "pairs", possibly
three (3) pairs if necessary due to enrollment, but students are encouraged
to form their own 2-pair teams in advance. If some students drop the
course, any remaining pair or team members may be arbitrarily reassigned
to other pairs/teams at the discretion of the instructor (but are strongly
encouraged to reform pairs/teams on their own). Students will develop and
test their project code together with the other member of their programming
pair.
148
 Document Transformation methodology driven
approach
» Strategy Alignment Elicitation
• Equivalent to strategic planning
– i.e., planning at the level of a project set
» Strategy Alignment Execution
• Equivalent to project planning + SDLC
– i.e., planning a the level of individual projects + project
implementation
 Build a methodology Wiki & partially implement the
enablers
 Apply transformation methodology approach to a
sample problem domain for which a business solution
must be found
 Final product is a wiki/report that focuses on
» Methodology / methodology implementation / sample
business-driven problem solution
Team Project Approach - Overall
149
 Document sample problem domain and
business-driven problem of interest
» Problem description
» High-level specification details
» High-level implementation details
» Proposed high-level timeline
Team Project Approach – Initial Step
150
Assignments & Readings
 Readings
» Slides and Handouts posted on the course web site
» Textbook: Chapters 1 & 2 & Part One-Chapter 3
 Assignment #1
» Team Project proposal (format TBD in class)
» Presentation topic proposal (format TBD in class)
 Project Frameworks Setup (ongoing)
» As per reference provided on the course Web site
151
Next Session: Software Development Lifecycles (SDLCs)
 Software Engineering Detailed
 Process Models
 Agile Development
 Software Engineering Knowledge
 Roles and Types of Standards
 ISO 12207: Life Cycle Standard
 IEEE Standards for Software Engineering Processes and
Specifications
 Summary and Conclusion
 Readings
 Assignment #1
 Course Project
152
Questions, Comments, Discussions ?

More Related Content

PDF
FSE Chap 1.pdf best ppt for second year software engineering student frist se...
PPT
se01.ppt
PDF
e-Business - SE trends
PPTX
Lecture-1,2-Introduction to SE.pptx
PPT
Intro
PDF
lecture 1.pdf
PDF
Software Engineering and Introduction, Activities and ProcessModels
PPT
SE-Lecture1.ppt
FSE Chap 1.pdf best ppt for second year software engineering student frist se...
se01.ppt
e-Business - SE trends
Lecture-1,2-Introduction to SE.pptx
Intro
lecture 1.pdf
Software Engineering and Introduction, Activities and ProcessModels
SE-Lecture1.ppt

Similar to Software Engineering and Fundamentals note (20)

PPT
Chapter_01 of software engineering bsit.ppt
PPT
Software Engineering
PPT
ch1_introduction.ppt
PPT
ch1_introduction (1).ppt
PPT
ch1_introduction (2).ppt
PPT
SE UNIT 1 NOTES OF SE SOFTWARE ENGG AND SE
PPT
SE_MAIN_OKhsjsjshsndndjdjndndmdnnnxnxmd.ppt
PPT
ch1_introduction.pptgtsytrsytryhtrhgrreqreedwds
PPT
Oose unit 1 ppt
PPT
OOSE Unit 1 PPT.ppt
PPTX
Week1.pptx
PPTX
SE chp1 update and learning management .pptx
PPTX
SE&PM-MODULE-1 2.pptx Software engineering
PDF
Lecture 1- Introduction to SE Lecture 1- Introduction to SE
PPT
Unit 1.ppt
PDF
lecture 1-5.pdf
PPT
1. Introduction to software engineering.ppt
PPTX
Lect 01
PPTX
aswjkdwelhjdfshlfjkhewljhfljawerhwjarhwjkahrjar
Chapter_01 of software engineering bsit.ppt
Software Engineering
ch1_introduction.ppt
ch1_introduction (1).ppt
ch1_introduction (2).ppt
SE UNIT 1 NOTES OF SE SOFTWARE ENGG AND SE
SE_MAIN_OKhsjsjshsndndjdjndndmdnnnxnxmd.ppt
ch1_introduction.pptgtsytrsytryhtrhgrreqreedwds
Oose unit 1 ppt
OOSE Unit 1 PPT.ppt
Week1.pptx
SE chp1 update and learning management .pptx
SE&PM-MODULE-1 2.pptx Software engineering
Lecture 1- Introduction to SE Lecture 1- Introduction to SE
Unit 1.ppt
lecture 1-5.pdf
1. Introduction to software engineering.ppt
Lect 01
aswjkdwelhjdfshlfjkhewljhfljawerhwjarhwjkahrjar
Ad

Recently uploaded (20)

PPTX
Welding lecture in detail for understanding
PDF
Arduino robotics embedded978-1-4302-3184-4.pdf
PDF
keyrequirementskkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk
PPTX
additive manufacturing of ss316l using mig welding
PPTX
bas. eng. economics group 4 presentation 1.pptx
PPTX
Infosys Presentation by1.Riyan Bagwan 2.Samadhan Naiknavare 3.Gaurav Shinde 4...
PPTX
KTU 2019 -S7-MCN 401 MODULE 2-VINAY.pptx
PPTX
web development for engineering and engineering
PPTX
Lecture Notes Electrical Wiring System Components
DOCX
573137875-Attendance-Management-System-original
PPTX
Recipes for Real Time Voice AI WebRTC, SLMs and Open Source Software.pptx
DOCX
ASol_English-Language-Literature-Set-1-27-02-2023-converted.docx
PDF
SM_6th-Sem__Cse_Internet-of-Things.pdf IOT
PDF
Mitigating Risks through Effective Management for Enhancing Organizational Pe...
PDF
Operating System & Kernel Study Guide-1 - converted.pdf
PDF
Evaluating the Democratization of the Turkish Armed Forces from a Normative P...
PDF
BMEC211 - INTRODUCTION TO MECHATRONICS-1.pdf
PPTX
UNIT-1 - COAL BASED THERMAL POWER PLANTS
PPTX
Geodesy 1.pptx...............................................
PPTX
CARTOGRAPHY AND GEOINFORMATION VISUALIZATION chapter1 NPTE (2).pptx
Welding lecture in detail for understanding
Arduino robotics embedded978-1-4302-3184-4.pdf
keyrequirementskkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk
additive manufacturing of ss316l using mig welding
bas. eng. economics group 4 presentation 1.pptx
Infosys Presentation by1.Riyan Bagwan 2.Samadhan Naiknavare 3.Gaurav Shinde 4...
KTU 2019 -S7-MCN 401 MODULE 2-VINAY.pptx
web development for engineering and engineering
Lecture Notes Electrical Wiring System Components
573137875-Attendance-Management-System-original
Recipes for Real Time Voice AI WebRTC, SLMs and Open Source Software.pptx
ASol_English-Language-Literature-Set-1-27-02-2023-converted.docx
SM_6th-Sem__Cse_Internet-of-Things.pdf IOT
Mitigating Risks through Effective Management for Enhancing Organizational Pe...
Operating System & Kernel Study Guide-1 - converted.pdf
Evaluating the Democratization of the Turkish Armed Forces from a Normative P...
BMEC211 - INTRODUCTION TO MECHATRONICS-1.pdf
UNIT-1 - COAL BASED THERMAL POWER PLANTS
Geodesy 1.pptx...............................................
CARTOGRAPHY AND GEOINFORMATION VISUALIZATION chapter1 NPTE (2).pptx
Ad

Software Engineering and Fundamentals note

  • 1. 1 Software Engineering Session 1 – Main Theme Software Engineering Fundamentals Dr. Jean-Claude Franchitti New York University Computer Science Department Courant Institute of Mathematical Sciences Presentation material partially based on textbook slides Software Engineering: A Practitioner’s Approach (7/e) by Roger S. Pressman Slides copyright © 1996, 2001, 2005, 2009, 2014
  • 2. 2 2 Software Engineering Fundamentals Agenda 1 Instructor and Course Introduction 4 Summary and Conclusion 3 Towards a Pattern-Driven SE Methodology
  • 3. 3 - Profile -  32 years of experience in the Information Technology Industry, including twelve years of experience working for leading IT consulting firms such as Computer Sciences Corporation  PhD in Computer Science from University of Colorado at Boulder  Past CEO and CTO  Held senior management and technical leadership roles in many large IT Strategy and Modernization projects for fortune 500 corporations in the insurance, banking, investment banking, pharmaceutical, retail, and information management industries  Contributed to several high-profile ARPA and NSF research projects  Played an active role as a member of the OMG, ODMG, and X3H2 standards committees and as a Professor of Computer Science at Columbia initially and New York University since 1997  Proven record of delivering business solutions on time and on budget  Original designer and developer of jcrew.com and the suite of products now known as IBM InfoSphere DataStage  Creator of the Enterprise Architecture Management Framework (EAMF) and main contributor to the creation of various maturity assessment methodology  Developed partnerships between several companies and New York University to incubate new methodologies (e.g., EA maturity assessment methodology), develop proof of concept software, recruit skilled graduates, and increase the companies’ visibility Who am I?
  • 4. 4 How to reach me? Cell (212) 203-5004 Email jcf@cs.nyu.edu AIM, Y! IM, ICQ jcf2_2003 MSN IM jcf2_2003@yahoo.com LinkedIn http://www.linkedin.com/in/jcfranchitti Twitter http://twitter.com/jcfranchitti Skype jcf2_2003@yahoo.com Come on…what else did you expect? Woo hoo…find the word of the day…
  • 5. 5 What is the class about?  Course description and syllabus: » http://www.nyu.edu/classes/jcf/CSCI-GA.2440-001/ » http://www.cs.nyu.edu/courses/spring15/CSCI-GA.2440-001/  Textbooks: » Software Engineering: A Practitioner’s Approach Roger S. Pressman McGraw-Hill Higher International ISBN-10: 0078022126, ISBN-13: 978-0078022128, 8th Edition (01/23/14) » Recommended: » Code Complete: A Practical Handbook of Software Construction, 2nd Edition » The Mythical Man-Month: Essays on Software Engineering, 2nd Edition
  • 6. 6 Icons / Metaphors 6 Common Realization Information Knowledge/Competency Pattern Governance Alignment Solution Approach
  • 7. 7 Helpful Preliminary Knowledge  Business Process Modeling (BPM)  Object-Oriented Analysis and Design (OOAD)  Object-oriented technology experience  Software development experience as a software development team member in the role of business analyst, developer, or project manager  Implementation language experience (e.g., C++, Java, C#)  Note: Knowledge of BPMN, UML or a specific programming language is not required
  • 8. 8 Course Objectives (1/3)  Present modern software engineering techniques and examines the software life-cycle, including software specification, design implementation, testing and maintenance  Describe and compare various software development methods and understand the context in which each approach might be applicable  Develop students’ critical skills to distinguish sound development practices from ad-hoc practices, judge which technique would be most appropriate for solving large-scale software problems, and articulate the benefits of applying sound practices
  • 9. 9  Expand students’ familiarity with mainstream languages used to model and analyze processes and object designs (e.g., BPMN, UML).  Demonstrate the importance of formal/executable specifications of object models, and the ability to verify the correctness/completeness of solution by executing the models.  Explain the scope of the software maintenance problem and demonstrate the use of several tools for reverse engineering software. Course Objectives (2/3)
  • 10. 10  Develop students’ ability to evaluate the effectiveness of an organization’s software development practices, suggest improvements, and define a process improvement strategy  Introduce state-of-the-art tools and techniques for large- scale development  Implement major software development methods in practical projects and motivate discussion via group presentations Course Objectives (3/3)
  • 11. 11 Software Requirements  Software tools will be available from the Internet or from the course Web site under demos as a choice of freeware or commercial tools  Business and Application Modeling Tools  Software Development Tools  Workflow Management Frameworks  etc.  References will be provided on the course Web site
  • 12. 12 Important Overarching Rule for SE Practitioners  Recognize and Adopt “Paradigm Shifts”  http://vimeo.com/103246683  https://www.youtube.com/watch?v=wOXWSg_PyTQ  https://www.youtube.com/watch?v=Aesl6HeiwOg  https://www.youtube.com/watch?v=x0iRj8_9KhA&index=2&list=PLBCCA5F25EF30184C
  • 13. 13 2 Software Engineering Fundamentals Agenda 1 Instructor and Course Introduction 4 Summary and Conclusion 3 Towards a Pattern-Driven SE Methodology
  • 14. 14 Software Engineering Discipline Software Development Challenges The Human Side of Software Development Refining the Software Engineering Discipline Agenda – Software Engineering Fundamentals Software Engineering Scope 2 Software Engineering Fundamentals Software Engineering Best Practices ala Rational Rational Unified Process Introduction to Agile Software Engineering
  • 15. 15 What is Software? (1/2) Software is: (1)instructions (computer programs) that when executed provide desired features, function, and performance; (2) data structures that enable the programs to adequately manipulate information; (3) documentation that describes the operation and use of the programs.
  • 16. 16 What is Software? (2/2)  Software is developed or engineered, it is not manufactured in the classical sense.  Software doesn't "wear out."  Although the industry is moving toward component- based construction, most software continues to be custom-built.
  • 18. 18  The economies of ALL developed nations are dependent on software  More and more systems are software-controlled  Software engineering is concerned with theories, methods and tools for professional software development  Software engineering expenditure represents a significant fraction of GNP in all developed countries  GNP stands for Gross National Product. GNP per capita is the dollar value of a country’s final output of goods and services in a year, divided by its population. It reflects the average income of a country’s citizens. Software Engineering
  • 19. 19  Software costs often dominate system costs.  The costs of software on a PC are often greater than the hardware cost  Software costs more to maintain than it does to develop  For systems with a long life, maintenance costs may be several times development costs  Software engineering is concerned with cost- effective software development Software Costs
  • 20. 20 Software Products  Generic products  Stand-alone systems which are produced by a development organization and sold on the open market to any customer  Bespoke (customized) products  Systems which are commissioned by a specific customer and developed specially by some contractor  Most software expenditure is on generic products but most development effort is on bespoke systems
  • 21. 21 Software Applications  System software  Application software  Engineering/scientific software  Embedded software  Product-line software  WebApps (Web applications)  AI software
  • 22. 22 Software—New Categories  Open world computing - pervasive, distributed computing  Ubiquitous computing - wireless networks  Netsourcing - the Web as a computing engine  Open source - ”free” source code open to the computing community (a blessing, but also a potential curse!)  Also … »Data mining »Grid computing »Cognitive machines »Software for nanotechnologies
  • 23. 23 Legacy Software  software must be adapted to meet the needs of new computing environments or technology  software must be enhanced to implement new business requirements  software must be extended to make it interoperable with other more modern systems or databases  software must be re-architected to make it viable within a network environment Why must it change?
  • 24. 24 Software Product Attributes  Maintainability  It should be possible for the software to evolve to meet changing requirements  Dependability  The software should not cause physical or economic damage in the event of failure  Efficiency  The software should not make wasteful use of system resources  Usability  Software should have an appropriate user interface and documentation
  • 25. 25 Importance of Product Characteristics  The relative importance of these characteristics depends on the product and the environment in which it is to be used  In some cases, some attributes may dominate  In safety-critical real-time systems, key attributes may be dependability and efficiency  Costs tend to rise exponentially if very high levels of any one attribute are required
  • 27. 27 Characteristics of WebApps (1/2)  Network intensiveness. A WebApp resides on a network and must serve the needs of a diverse community of clients.  Concurrency. A large number of users may access the WebApp at one time.  Unpredictable load. The number of users of the WebApp may vary by orders of magnitude from day to day.  Performance. If a WebApp user must wait too long (for access, for server-side processing, for client-side formatting and display), he or she may decide to go elsewhere.  Availability. Although expectation of 100 percent availability is unreasonable, users of popular WebApps often demand access on a “24/7/365” basis.  Data driven. The primary function of many WebApps is to use hypermedia to present text, graphics, audio, and video content to the end-user.  Content sensitive. The quality and aesthetic nature of content remains an important determinant of the quality of a WebApp.
  • 28. 28 Characteristics of WebApps (2/2)  Continuous evolution. Unlike conventional application software that evolves over a series of planned, chronologically-spaced releases, Web applications evolve continuously  Immediacy. Although immediacy—the compelling need to get software to market quickly—is a characteristic of many application domains, WebApps often exhibit a time to market that can be a matter of a few days or weeks  Security. Because WebApps are available via network access, it is difficult, if not impossible, to limit the population of end-users who may access the application  Aesthetics. An undeniable part of the appeal of a WebApp is its look and feel
  • 29. 29 Summary of Sub-Section’s Key Points  Software engineering is concerned with the theories, methods and tools for developing, managing and evolving software products  Software products consist of programs and documentation  Product attributes include maintainability, dependability, efficiency and usability
  • 30. 30 Software Engineering Discipline Software Development Challenges The Human Side of Software Development Refining the Software Engineering Discipline Agenda – Software Engineering Fundamentals Software Engineering Scope 2 Software Engineering Fundamentals Software Engineering Best Practices ala Rational Rational Unified Process Introduction to Agile Software Engineering
  • 31. 31 The Software Process  Structured set of activities required to develop a software system  Specification  Design  Validation  Evolution  Activities vary depending on the organization and the type of system being developed  Software process must be explicitly modeled if it is to be managed
  • 32. 32 Process Characteristics (1/2)  Understandability  Is the process defined and understandable?  Visibility  Is the process progress externally visible?  Supportability  Can the process be supported by CASE tools?  Acceptability  Is the process acceptable to those involved in it?
  • 33. 33 Process Characteristics (2/2)  Reliability  Are process errors discovered before they result in product errors?  Robustness  Can the process continue in spite of unexpected problems?  Maintainability  Can the process evolve to meet changing organizational needs?  Rapidity  How fast can the system be produced?
  • 34. 34 Engineering Process Model  Specification  Set out the requirements and constraints on the system  Design  Produce a paper model of the system  Manufacture  Build the system  Test  Check if the system meets the required specifications  Install  Deliver the system to the customer and ensure it is operational  Maintain  Repair faults in the system as they are discovered
  • 35. 35 Software Process Models Characteristics  Normally, specifications are incomplete/anomalous  Very blurred distinction between specification, design and manufacturing  No physical realization of the system for testing  Software does not wear out  Maintenance does not mean component replacement
  • 36. 36 Generic Software Process Models  Waterfall model  Separate and distinct phases of specification and development  Evolutionary development  Specification and development are interleaved  Formal transformation  A mathematical system model is formally transformed to an implementation  Reuse-based development  The system is assembled from existing components
  • 37. 37 Waterfall Model Requirements definition System and software design Implementation and unit testing Integration and system testing Operation and maintenance
  • 38. 38 Waterfall Model Characteristics and Limitations  Phases:  Requirements analysis and definition  System and software design  Implementation and unit testing  Integration and system testing  Operation and maintenance  The drawback of the waterfall model is the difficulty of accommodating change after the process is underway
  • 40. 40 Evolutionary Development Characteristics  Exploratory prototyping  Objective is to work with customers and to evolve a final system from an initial outline specification  Should start with well-understood requirements  Throw-away prototyping  Objective is to understand the system requirements  Should start with poorly understood requirements
  • 41. 41 Evolutionary Development Limitations  Problems  Lack of process visibility  Systems are often poorly structured  Requires Special skills (e.g., languages for rapid prototyping) may be required  Applicability  For small or medium-size interactive systems  For parts of large systems (e.g. the user interface)  For short-lifetime systems
  • 42. 42 Summary of Sub-Section’s Key Points  The software process consists of those activities involved in software development  The waterfall model considers each process activity as a discrete phase  Evolutionary development considers process activities as concurrent
  • 43. 43 Software Engineering Discipline Software Development Challenges The Human Side of Software Development Refining the Software Engineering Discipline Agenda – Software Engineering Fundamentals Software Engineering Scope 2 Software Engineering Fundamentals Software Engineering Best Practices ala Rational Rational Unified Process Introduction to Agile Software Engineering
  • 44. 44 Inherent Risks (http://www.ibm.com/developerworks/rational/library/1719.html)  Sponsorship  Budget  Culture  Business Understanding  Priorities  Business changes  Features  Schedule slips  Methodology Misuse  Software Quality
  • 45. 45 Symptoms of Software Development Problems  User or business needs not met  Requirements churn  Modules don’t integrate  Hard to maintain  Late discovery of flaws  Poor quality of end-user experience  Poor performance under load  No coordinated team effort  Build-and-release issues
  • 46. 46 Trace Symptoms to Root Causes Develop Iteratively Manage Requirements Use Component Architectures Model Visually (e.g., UML) Continuously Verify Quality Manage Change Needs not met Requirements churn Modules don’t fit Hard to maintain Late discovery Poor quality Poor performance Colliding developers Build-and-release Insufficient requirements Ambiguous communications Brittle architectures Overwhelming complexity Undetected inconsistencies Poor testing Subjective assessment Waterfall development Uncontrolled change Insufficient automation Symptoms Root Causes Best Practices
  • 47. 47 Risk Management  Perhaps the principal task of a manager is to minimize risk  The 'risk' inherent in an activity is a measure of the uncertainty of the outcome of that activity  High-risk activities cause schedule and cost overruns  Risk is related to the amount and quality of available information  The less information, the higher the risk
  • 48. 48 Process Model Risk Problems  Waterfall  High risk for new systems because of specification and design problems  Low risk for well-understood developments using familiar technology  Prototyping  Low risk for new applications because specification and program stay in step  High risk because of lack of process visibility  Transformational  High risk because of need for advanced technology and staff skills
  • 49. 49 Software Engineering Discipline Software Development Challenges The Human Side of Software Development Refining the Software Engineering Discipline Agenda – Software Engineering Fundamentals Software Engineering Scope 2 Software Engineering Fundamentals Software Engineering Best Practices ala Rational Rational Unified Process Introduction to Agile Software Engineering
  • 50. 50 Hybrid Process Models  Large systems are usually made up of several sub-systems  The same process model need not be used for all subsystems  Prototyping should be used for high- risk specifications  Waterfall model should be used for well-understood developments
  • 51. 51 Spiral Model of the Software Process Risk analysis Risk analysis Risk analysis Risk anal ysis Proto- type 1 Prototype 2 Prototype 3 Opera- tional protoype Concept of Operation Simulations, models, benchmarks S/W requirements Requirement validation Design V&V Product design Detailed design Code Unit test Integration test Acceptance test Service Develop, verify next-level product Evaluate alternatives identify, resolve risks Determine objectives alternatives and constraints Plan next phase Integration and test plan Development plan Requirements plan Life-cycle plan REVIEW
  • 52. 52 Phases of the Spiral Model  Objective setting  Specific objectives for the project phase are identified  Risk assessment and reduction  Key risks are identified, analyzed and information is sought to reduce these risks  Development and validation  An appropriate model is chosen for the next phase of development.  Planning  The project is reviewed and plans drawn up for the next round of the spiral
  • 53. 53 Template for a Spiral Round  Quality Improvement Focus  Objectives  Constraints  Alternatives  Risk Reduction Focus  Risk Assessment  Risk resolution  Plan-Do-Check-Act (PDCA) Approach  Results  Plans  Commitment
  • 54. 54 Quality Improvement Focus  Objectives  Significantly improve software quality  Constraints  Within a three-year timescale  Without large-scale capital investment  Without radical change to company standards  Alternatives  Reuse existing certified software  Introduce formal specification and verification  Invest in testing and validation tools
  • 55. 55  Risk Assessment  No cost effective quality improvement  Possible quality improvements may increase costs excessively  New methods might cause existing staff to leave  Risk resolution  Literature survey  Pilot project  Survey of potential reusable components  Assessment of available tool support  Staff training and motivation seminars Risk Reduction Focus
  • 56. 56  Results  Experience of formal methods is limited - very hard to quantify improvements  Limited tool support available for company-wide standard development system  Reusable components available but little support exists in terms of reusability tools  Plans  Explore reuse option in more detail  Develop prototype reuse support tools  Explore component certification scheme  Commitment  Fund further 18-month study phase PDCA Approach
  • 57. 57 Template for a Spiral Round at Work - Catalogue Spiral (1/3)  Quality Improvement Focus  Objectives  Procure software component catalogue  Constraints  Within a year Must support existing component types Total cost less than $100, 000  Alternatives  Buy existing information retrieval software  Buy database and develop catalogue using database  Develop special purpose catalogue
  • 58. 58  Risks Reduction Focus  Risks assessment  May be impossible to procure within constraints  Catalogue functionality may be inappropriate  Risk resolution  Develop prototype catalogue (using existing 4GL and an existing DBMS) to clarify requirements  Commission consultants report on existing information retrieval system capabilities.  Relax time constraint Template for a Spiral Round at Work - Catalogue Spiral (2/3)
  • 59. 59  PDCA Approach  Results  Information retrieval systems are inflexible.  Identified requirements cannot be met.  Prototype using DBMS may be enhanced to complete system  Special purpose catalogue development is not cost- effective  Plans  Develop catalogue using existing DBMS by enhancing prototype and improving user interface  Commitment  Fund further 12 month development Template for a Spiral Round at Work - Catalogue Spiral (3/3)
  • 60. 60 Spiral Model Flexibility  Hybrid models accommodated for different parts of a project:  Well-understood systems  Low technical risk  Use Waterfall model as risk analysis phase is relatively cheap  Stable requirements and formal specification with safety criticality  Use formal transformation model  High UI risk with incomplete specification  Use Prototyping model
  • 61. 61 Spiral Model Advantages  Focuses attention on reuse options  Focuses attention on early error elimination  Puts quality objectives up front  Integrates development and maintenance  Provides a framework for hardware/software development
  • 62. 62 Spiral Model Limitations  Contractual development often specifies process model and deliverables in advance  Requires risk assessment expertise  Needs refinement for general use
  • 63. 63 Process Visibility as a Process Model Metric  Software systems are intangible so managers need documents to assess progress  However, this may cause problems  Timing of progress deliverables may not match the time needed to complete an activity  The need to produce documents places constraints on process iterations  The time taken to review and approve documents is significant  Waterfall model is still the most widely used deliverable-based model
  • 64. 64 Sample Set of Waterfall Model Documents Activity Output doc uments Require ments analysis Fe asibility study , Outline requireme nts Require ments de finition Require ments docum ent Sy stem spe cific ation Functiona l spe cific ation, Ac cepta nc e te st plan Draft user ma nua l Architec tural design Architec tural specification, Sy ste m test pla n Interfa ce de sign Interfa ce spe cific ation, Inte gration test plan Detailed de sign Design specification, Unit test pla n Coding Progra m code Unit testing Unit test report Module testing Module test re port Integration te sting Integration te st report, Fina l use r m anual Sy stem testing Sy stem test re port Acc eptance testing Fina l sy ste m plus doc ume ntation
  • 65. 65 Process Model Visibility Process model Process visibility Waterfall model Good visibility, each activity produces some deliverable Evolutionary development Poor visibility, uneconomic to produce documents during rapid iteration Formal transformations Good visibility, documents must be produced fromeach phase for the process to continue Reuse-oriented development Moderate visibility, it may be artificial to produce documents describing reuse and reusable components. Spiral model Good visibility, each segment and each ring of the spiral should produce some document.
  • 66. 66 Summary of Sub-Section’s Key Points  The spiral process model is risk-driven  Process visibility involves the creation of deliverables from activities
  • 67. 67 Software Engineering Discipline Software Development Challenges The Human Side of Software Development Refining the Software Engineering Discipline Agenda – Software Engineering Fundamentals Software Engineering Scope 2 Software Engineering Fundamentals Software Engineering Best Practices ala Rational Rational Unified Process Introduction to Agile Software Engineering
  • 68. 68 Professional Responsibility  Software engineers should not just be concerned with technical considerations. They have wider ethical, social and professional responsibilities  Not clear what is right or wrong about the following issues:  Development of military systems  Whistle blowing  What is best for the software engineering profession
  • 69. 69 Ethical Issues  Confidentiality  Competence  Intellectual property rights  Computer misuse
  • 70. 70 Summary of Sub-Section’s Key Points  Software engineers have ethical, social and professional responsibilities
  • 71. 71 Software Engineering Discipline Software Development Challenges The Human Side of Software Development Refining the Software Engineering Discipline Agenda – Software Engineering Fundamentals Software Engineering Scope 2 Software Engineering Fundamentals Software Engineering Best Practices ala Rational Rational Unified Process Introduction to Agile Software Engineering
  • 72. 72 Section Outline  Identify Steps for Understanding and Solving Software Engineering Problems  Explain the IBM Rational “Six Best Practices”
  • 73. 73 Best Practices Process Made Practical Develop Iteratively Manage Requirements Use Component Architectures Model Visually (UML) Continuously Verify Quality Manage Change Practice 1: Develop Iteratively
  • 74. 74 Waterfall Development Characteristics  Delays confirmation of critical risk resolution  Measures progress by assessing work- products that are poor predictors of time-to- completion  Delays and aggregates integration and testing  Precludes early deployment  Frequently results in major unplanned iterations Code and unit test Design Subsystem integration System test Waterfall Process Requirements analysis
  • 75. 75 Iterative Development Produces Executable Releases Initial Planning Planning Requirements Analysis & Design Implementation Deployment Test Evaluation Management Environment Each iteration results in an executable release
  • 77. 77 Practice 2: Manage Requirements Best Practices Process Made Practical Develop Iteratively Manage Requirements Use Component Architectures Model Visually (UML) Continuously Verify Quality Manage Change
  • 78. 78 Requirements Management  Making sure you  Solve the right problem  Build the right system  By taking a systematic approach to  eliciting  organizing  documenting  managing the changing requirements of a software application.
  • 79. 79 Aspects of Requirements Management  Analyze the Problem  Understand User Needs  Define the System  Manage Scope  Refine the System Definition  Build the Right System
  • 81. 81 Practice 3: Use Component Architectures Best Practices Process Made Practical Develop Iteratively Manage Requirements Use Component Architectures Model Visually (UML) Continuously Verify Quality Manage Change
  • 82. 82 Resilient, Component-Based Architectures  Resilient  Meets current and future requirements  Improves extensibility  Enables reuse  Encapsulates system dependencies  Component-based  Reuse or customize components  Select from commercially-available components  Evolve existing software incrementally
  • 83. 83 Purpose of a Component-Based Architecture  Basis for reuse  Component reuse  Architecture reuse  Basis for project management  Planning  Staffing  Delivery  Intellectual control  Manage complexity  Maintain integrity System- software Middleware Business- specific Application- specific Component-based Architecture with layers
  • 84. 84 Practice 4: Model Visually (UML) Best Practices Process Made Practical Develop Iteratively Manage Requirements Use Component Architectures Model Visually (UML) Continuously Verify Quality Manage Change
  • 85. 85 Why Model Visually?  Capture structure and behavior  Show how system elements fit together  Keep design and implementation consistent  Hide or expose details as appropriate  Promote unambiguous communication  UML: one language for all practitioners
  • 86. 86 Visual Modeling with UML 1.X  Multiple views  Precise syntax and semantics Activity Diagrams Models Sequence Diagrams Collaboration Diagrams Statechart Diagrams Deployment Diagrams Component Diagrams Object Diagrams Class Diagrams Use-Case Diagrams Static Diagrams Dynamic Diagrams
  • 87. 87 Visual Modeling Using UML 1.X Diagrams Actor A Use Case 1 Use Case 2 Actor B user : Clerk mainWnd: MainWnd fileMgr : FileMgr repository : Repository document : Document gFile : GrpFile 9: sortByName ( ) L 1: Doc view request ( ) 2: fetchDoc( ) 5: readDoc ( ) 7: readFile ( ) 3: create ( ) 6: fillDocument ( ) 4: create ( ) 8: fillFile ( ) Window95 ¹®¼°ü¸® Ŭ¶óÀ̾ðÆ®.EXE Windows NT ¹®¼°ü¸® ¿£Áø.EXE Windows NT Windows95 Solaris ÀÀ¿ë¼¹ö.EXE Alpha UNIX IBM Mainframe µ¥ÀÌŸº£À̽º¼¹ö Windows95 ¹®¼°ü¸® ¾ÖÇø´ Document FileManager GraphicFile File Repository DocumentList FileList user mainWnd fileMgr : FileMgr repository document : Document gFile 1: Doc view request ( ) 2: fetchDoc( ) 3: create ( ) 4: create ( ) 5: readDoc ( ) 6: fillDocument ( ) 7: readFile ( ) 8: fillFile ( ) 9: sortByName ( ) ƯÁ¤¹®¼¿¡ ´ëÇÑ º¸±â¸¦ »ç¿ëÀÚ°¡ ¿äûÇÑ´Ù. ÈÀϰü¸®ÀÚ´Â Àоî¿Â ¹®¼ÀÇ Á¤º¸¸¦ ÇØ´ç ¹®¼ °´Ã¼¿¡ ¼³Á¤À» ¿äûÇÑ´Ù. È¸é °´Ã¼´Â ÀоîµéÀÎ °´Ã¼µé¿¡ ´ëÇØ À̸§º°·Î Á¤·ÄÀ» ½ÃÄÑ È¸é¿¡ º¸¿©ÁØ´Ù. Forward and Reverse Engineering Target System Openning Writing Reading Closing add file [ numberOffile==MAX ] / flag OFF add file close file close file Use Case 3 Use-case diagram Class diagram Collaboration diagram Sequence diagram Component diagram Statechart diagram GrpFile read( ) open( ) create( ) fillFile( ) rep Repository name : char * = 0 readDoc( ) readFile( ) (fromPersistence) FileMgr fetchDoc( ) sortByName( ) DocumentList add( ) delete( ) Document name : int docid : int numField : int get( ) open( ) close( ) read( ) sortFileList( ) create( ) fillDocument( ) fList 1 FileList add( ) delete( ) 1 File read( ) read() fill the code.. Deployment diagram
  • 88. 88 UML 1.X Notation Baseline Diagram Name Type Phase Use Case Static* Analysis Class Static Analysis Activity Dynamic** Analysis State-Transition Dynamic Analysis Event Trace (Interaction) Dynamic Design Sequence Dynamic Design Collaboration Dynamic Design Package Static Delivery Deployment Dynamic Delivery * Static describes structural system properties ** Dynamic describes behavioral system properties.
  • 89. 89 UML 1.X Diagrams UML 1.X defines twelve types of diagrams, divided into three categories  Four diagram types represent static application structure:  Class Diagram  Object Diagram  Component Diagram  Deployment Diagram  Five represent different aspects of dynamic behavior  Use Case Diagram  Sequence Diagram  Activity Diagram  Collaboration Diagram  Statechart Diagram  Three represent ways to organize and manage your application modules  Packages  Subsystems  Models Source: http://www.omg.org/gettingstarted/what_is_uml.htm
  • 90. 90 UML 1.X Views  Approach  UML 1.X defines five views that let you look at overall models from various angles  Layering architectural principles is used to allocate pieces of functionality to subsystems  Partitioning is used to group related pieces of functionality into packages within subsystems  Views and Related Diagrams  Use Case View (application functionality)  Use Case Diagram  Logical View (static application structure)  Class Diagram  Object Diagram  Process View (dynamic application behavior)  Sequence Diagram  Activity Diagram  Collaboration Diagram  Statechart Diagram  Implementation View (application packaging)  Component Diagram  Deployment View (application delivery)  Deployment Diagram
  • 91. 91 Functional view Static View Behavioral View Architectural View Play Player View High Score Find Beverage Pour Coffee Drink Beverage Get Can of Cola Get Cups Add Water to Reservoir Put Coffee in Filter Put Filter in Machine Turn on Machine Brew Coffee ^coffeePot.TurnOn [ no cola ] [ found cola ] [ no coffee ] [ found coffee ] light goes out Momo :Player game :Dice Game d1 :Die d2 :Die 2:r1=roll( ) 3:r2=roll( ) 1:play() d1 : Die : DiceGame : Player d2 : Die 1: play( ) 2: roll( ) 3: roll( ) Ready to play Player ready entry: get player name In progress entry: turn++ / Start game roll dices[ turn<10 ] start [ turn>=10 ] Cancel play cancel Quit DicePersist Displayable Dice Vizualization PersistKit DiceSystem Observable Observer Random system Randomizer HighScore Game Computer SGBD computer JBDC Connection Play the game File System Save/load the highscore Maybe a Remote a file system Consistency Coverage Need to Maintain Consistency and Coverage Across UML 1.X Views
  • 92. 92 New in UML 2.X (1/2) (http://www.omg.org/gettingstarted/what_is_uml.htm)  UML 2.X Profiles  The new language goes well beyond the Classes and Objects well-modeled by UML 1.X to add the capability to represent not only behavioral models, but also architectural models, business process and rules, and other models used in many different parts of computing and even non-computing disciplines  Nested Classifiers  Every model building block (e.g., classes, objects, components, behaviors such as activities and state machines) is a classifier  A set of classes may be nested inside the component that manages them, or a behavior (such as a state machine) may be embedded inside the class or component that implements it  Capability may be used to build up complex behaviors from simpler ones (i.e., the capability that defines the Interaction Overview Diagram)  Can layer different levels of abstraction in multiple ways:  For example, you can build a model of your Enterprise, and zoom in to embedded site views, and then to departmental views within the site, and then to applications within a department  Alternatively, you can nest computational models within a business process model. OMG's Business Enterprise Integration Domain Task Force (BEI DTF) is currently working on several interesting new standards in business process and business rules
  • 93. 93 New in UML 2.X (2/2) (http://www.omg.org/gettingstarted/what_is_uml.htm)  Improved Behavioral Modeling  In UML 1.X, the different behavioral models were independent, but in UML 2.0, they all derive from a fundamental definition of a behavior (except for the Use Case, which is subtly different but still participates in the new organization)  Improved relationship between Structural and Behavioral Models  UML 2.0 makes it possible to designate that a behavior represented by (for example) a State Machine or Sequence Diagram is the behavior of a class or a component  Object Constraint Language (OCL) and Action Semantics » During the upgrade process, several additions to the language were incorporated into it, including the Object Constraint Language (OCL) and Action Semantics.
  • 94. 94 Practice 5: Continuously Verify Quality Best Practices Process Made Practical Develop Iteratively Manage Requirements Use Component Architectures Model Visually (UML) Continuously Verify Quality Manage Change
  • 95. 95 Continuously Verify Software Quality Cost Transition Construction Elaboration Inception Software problems are 100 to 1000 times more costly to find and repair after deployment  Cost to Repair Software  Cost of Lost Opportunities  Cost of Lost Customers
  • 96. 96 Test All Dimensions of Software Quality Functionality Reliability Performance Does my application do what’s required? Does the system perform under production load? Verification of each usage scenario Verification of sustained application operation Test performance under expected & worst-case load Does my application respond acceptably?
  • 97. 97 UML Model and Implementation Tests Iteration 1 Test Suite 1 Iteration 2 Test Suite 2 Iteration 4 Test Suite 4 Iteration 3 Test Suite 3 Test Each Iteration
  • 98. 98 Practice 6: Manage Change Best Practices Process Made Practical Develop Iteratively Manage Requirements Use Component Architectures Model Visually (UML) Continuously Verify Quality Manage Change
  • 99. 99 ALERT REPORT Workspace Management Process Integration Parallel Development Build Management CM is more than just check-in and check-out What Do You Want to Control?  Changes to enable iterative development  Secure workspaces for each developer  Automated integration/build management  Parallel development
  • 100. 100 Aspects of a Configuration Management (CM) System  Change Request Management  Configuration Status Reporting  Configuration Management (CM)  Change Tracking  Version Selection  Software Manufacturing
  • 101. 101 Unified Change Management  Management across the lifecycle  System  Project Management  Activity-Based Management  Tasks  Defects  Enhancements  Progress Tracking  Charts  Reports
  • 102. 102 Best Practices Reinforce Each Other Validates architectural decisions early on Addresses complexity of design/implementation incrementally Measures quality early and often Evolves baselines incrementally Ensures users involved as requirements evolve Best Practices Develop Iteratively Manage Requirements Use Component Architectures Model Visually (UML) Continuously Verify Quality Manage Change
  • 103. 103 Software Engineering Discipline Software Development Challenges The Human Side of Software Development Refining the Software Engineering Discipline Agenda – Software Engineering Fundamentals Software Engineering Scope 2 Software Engineering Fundamentals Software Engineering Best Practices ala Rational Rational Unified Process Introduction to Agile Software Engineering
  • 104. 104 Section Outline  Present the IBM Rational Unified Process within the context of the Six Best Practices covered in the previous sub-section
  • 105. 105 Foundations of RUP  Implement Software Engineering Best Practices:  Iterative Controlled Development  Use Case Models for Business Requirements  Component Architectures  Risk Identification, Management & Mitigation
  • 106. 106 RUP Best Practices Implementation Best Practices Process Made Practical Develop Iteratively Manage Requirements Use Component Architectures Model Visually (UML) Continuously Verify Quality Manage Change
  • 107. 107 Achieving Best Practices  Iterative Approach  Guidance for activities and work products (artifacts)  Process focus on architecture  Use cases which drive design and implementation  Models which abstract the system Implementation Test Analysis & Design Requirements Configuration & Change Management
  • 108. 108 A Team-Based Definition of Process  A process defines Who is doing What, When and How to reach a certain goal. New or changed requirements New or changed system Software Engineering Process
  • 109. 109 Process Structure - Lifecycle Phases  The Rational Unified Process has four Phases: » Inception - Define the scope of project » Elaboration - Plan project, specify features, baseline architecture » Construction - Build the product » Transition - Transition the product into end user community Inception Elaboration Construction Transition time
  • 110. 110 Phase Boundaries Mark Major Milestones Inception Elaboration Construction Transition Lifecycle Objective Milestone Lifecycle Architecture Milestone Initial Operational Capability Milestone Product Release time
  • 111. 111 Iterations and Phases An iteration is a distinct sequence of activities based on an established plan and evaluation criteria, resulting in an executable release (internal or external) Preliminary Iteration Architect. Iteration Architect. Iteration Devel. Iteration Devel. Iteration Devel. Iteration Transition Iteration Transition Iteration Inception Elaboration Construction Transition Minor Milestones: Releases
  • 112. 112 Workflows Produce Models OK OK Fail Realized By Implemented By Verified By Implementation Model Test Model Design Model Use-Case Model Models Core Process Workflows Test Implemen- tation Analysis & Design Requirements Business Use- Case Model Business Modeling Business Object Model B B B B Realized By Automated By
  • 113. 113 Bringing It All Together: The Iterative Approach Workflows group activities logically In an iteration, you walk through all workflows
  • 114. 114 Workflows Guide Iterative Development Business Modeling: Workflow Details Requirements: Workflow Details
  • 115. 115 Notation Role Activity Artifact Detail a Use Case Use-Case Package Use Case responsible for Requirements Specifier A unit of work a role may be asked to perform A piece of information that is produced, modified, or used by a process A role that may be played by an individual or a team in the development organization
  • 116. 116 Resource Paul Mary Joe Sylvia Stefan Roles Are Used for Resource Planning Each individual in the project is assigned to one or several roles Role Designer Requirements Specifier System Analyst Implementer Architect Activities Define Operations Detail a Use Case Find Actors and Use Cases Perform Unit Tests Identify Design Mechanisms
  • 117. 117 Roles Perform Activities and Produce Artifacts Example Requirements: Workflow Detail “Define the System” Capture a Common Vocabulary System Analyst Find Actors and Use Cases Use-Case Model (refined) Use-Case Modeling Guidelines Supplementary Specifications Glossary (refined) Glossary Stakeholder Requests Use-Case Model Manage Dependencies Requirements Management Plan Vision Business Use-Case Model Business Object Model Requirements Attributes Requirements Attributes (refined) Develop Vision Business Rules Vision (refined) Use Case (outlined)
  • 118. 118 Overview of Rational Unified Process Concepts
  • 119. 119 Summary: Best Practices of Software Engineering  Best Practices guide software engineering by addressing root causes  Best Practices reinforce each other  Process guides a team on what to do, how to do it, and when to do it  The Rational Unified Process is a means of achieving Best Practices
  • 120. 120 Artifacts Definitions Investment Concept Statement Business Case Outlines the project’s purpose, scope, costs, benefits and risks of the investment and is used by business sponsors and stakeholders to make an informed decision Vision Defines the stakeholders view of the product to be developed, contains an outline of the envisioned core requirements, defines the boundary and primary features of the system and is used as the basis for more detailed technical requirements Stakeholders Requests Captures all requests made on the project from stakeholders Technology Governance Questionnaire Assesses the impact of all development projects introducing significant architectural or high- level design changes Use Case Specifications Defines the functional requirements for the system with use case diagrams Supplementary Specifications Defines the nonfunctional requirements of the system Software Architecture Document Provides a comprehensive architectural overview of the system, using a number of different architectural views to depict different aspects of the system – use case view, logical view, process view, deployment view, implementation view and data view (as needed) User Acceptance Test Plan Documents a plan to be used to direct user acceptance testing and ensures that all of the detailed business requirements defined in Inception are tested completely System Test Plan Outlines and communicates the objectives of the testing effort to gain acceptance and approval from the stakeholders Corporate Report Card Provides measurement and explanation of variances between actual and expected project performance and informs management of project issues (High Risk, High Impact) Issues List Entails the documentation, review, resolution, and follow-up of project issues Risk List Details a list of known and open risks to the project, sorted in decreasing order of importance and associated with specific mitigation strategies or contingency plans Project Plan / Iteration Plan Details the specific tasks that must be completed by each team member in order to complete a project Phase Assessment Review Establishes criteria for determining whether or not a project is ready to move from one phase to the next phase Sample RUP Artifacts Definition
  • 121. 121 Phase S M L Artifact Owner Inception    Investment Concept Statement Business Sponsor (A) Business Project Manager Inception  Business Case Business Sponsor (A) Business Project Manager Inception    Vision Business Lead (A) Technology Project Manager Inception Vision   Stakeholder Requests Business Lead Inception    Delegated Governance Questionnaire Technology Project Manager Elaboration    Use Case Specifications Business Lead (A) Technology Project Manager Elaboration Vision   Supplementary Specifications Business Lead (A) Technology Project Manager Elaboration    Software Architecture Document Technology Project Manager Architect Construction    User Acceptance Test Plan Business Project Manager Construction   System Test Plan Project Manager Ongoing    Issues List Project Manager Ongoing    Risk List Project Manager Ongoing    Project Plan / Iteration Plan Project Manager Ongoing    Phase Assessment Review Project Manager Ongoing   Corporate Report Card Business Project Manager A = Approver Light Light Light Sample RUP Core Artifacts
  • 122. 122 Key Role Definition Business Sponsor  Establishes the project funding and periodically review the spending progress against the Investment Opportunity expectations. They consistently champion the project and associated changes, as well as communicate project progress to Corporate leaders. Business Lead  Provides project leadership and overall business perspective. This role is responsible for managing the project risk and working with the team to ensure appropriate communication of risk mitigation.  Represents the team to stakeholders and management and influences the strategic and tactical business decisions pertaining to the project product. This role’s overall goal is to ensure the business expectations are achieved on time and on budget. Business Project Manager  Allocates resources, shapes priorities, coordinates interactions with customers and users, and generally keeps the project team focused on the right goal. The project manager also establishes a set of practices that ensure the integrity and quality of project artifacts. In addition, the Business Project Manager plans and conducts the formal review of the use- case model.  Leads and coordinates requirements elicitation and use-case modeling by outlining the system's functionality and delimiting the system; for example, establishing what actors and use cases exist and how they interact. In addition, this role details the specification of a part of the organization by describing the workflow of one or several business use cases. Technology Project Manager  Allocates resources, shapes priorities, coordinates interactions with customers and users, and generally keeps the project team focused on the right goal. The technology project manager also establishes a set of practices that ensure the integrity and quality of project artifacts. Architect  Leads and coordinates technical activities and artifacts throughout the project.  The software architect establishes the overall structure for each architectural view: the decomposition of the view, the grouping of elements, and the interfaces between these major groupings. Therefore, in contrast to the other roles, the software architect's view is one of breadth as opposed to one of depth. Sample Key Roles/Owners of RUP Artifacts
  • 123. 123 Summary of Sub-Section’s Key Points  RUP focuses on:  Iterative Controlled Development  Use Case Models for Business Requirements  Component Architecture  Risk Identification, Management &Mitigation
  • 124. 124 Software Engineering Discipline Software Development Challenges The Human Side of Software Development Refining the Software Engineering Discipline Agenda – Software Engineering Fundamentals Software Engineering Scope 2 Software Engineering Fundamentals Software Engineering Best Practices ala Rational Rational Unified Process Introduction to Agile Software Engineering
  • 125. 125 Agile Software Engineering  Agility  “Ability to create and respond to change in order to profit in a turbulent business environment”  Agile Values  Individual and interactions vs. processes and tools  Working software vs. comprehensive documentation  Customer collaboration vs. contract negotiation  Responding to change vs. following a plan
  • 126. 126 Agile Software Development Ecosystems  Agile Software Development Ecosystems (ASDEs) vs. Traditional Software Development Methodologies  “Chaordic” perspective  Product goals are achievable but they are not predictable  Processes can aid consistency but they are not repeatable  Collaborative values and principles  Barely sufficient methodology  Agilists are proponents of ASDEs
  • 127. 127 2 Software Engineering Fundamentals Agenda 1 Instructor and Course Introduction 4 Summary and Conclusion 3 Towards a Pattern-Driven SE Methodology
  • 128. 128 Section Objectives  Describe the limitations of legacy and best practice SDLC methodologies  Suggest the improved approach that is covered in the course  Discuss the approach to follow for the class project
  • 129. 129 Limitations of Legacy SE Methodologies  Focused on software solutions development  Driven by processes  Not driven by architecture and/or best practices altogether (other than initially)  Focus is on scope, time, cost, and quality  customer input sparsely considered  Metaphor:  “an algorithm without a centralized data structure to operate on”
  • 130. 130 Limitations of RUP Approach  Focused on software solutions development  Driven by best practices  Driven by workflows (and tools)  Focus is on scope, time, and cost  Customer assesses quality and drive change  Deliver quality software on-time & on-budget  By enforcing a best practice process that manages change  By following a PDCA approach were individuals play various roles in the overall process  Gap between Architecture-Driven approach and Use-Case Driven Modeling  A “top-down” architectural approach
  • 131. 131 Illustrating the RUP “Gap” OK OK Fail Realized By Implemented By Verified By Implementation Model Test Model Design Model Use-Case Model Models Core Process Workflows Test Implemen- tation Analysis & Design Requirements Business Use- Case Model Business Modeling Business Object Model B B B B Realized By Automated By  Going from business requirements to use cases requires non-trivial input that is hard/impossible to predict
  • 132. 132 Limitations of ASDE Approaches  Focused on software solutions development  Driven by best practices  Driven by collaboration between individuals  Interactions: customer/project team & intra-project team  Driven by change  Focus is on quality (test-driven), time, and cost  Customer drives the scope  Deliver optimal quality software on-time & on-budget  By limiting the scope to facilitate change  By follow an MOB approach were individuals assume full leadership  Architectural re-factoring becomes a nightmare  A “bottom-up architectural approach”
  • 133. 133 Agile Pattern-Driven Architecture (PDA) Approach  Focused on business solutions development » SDLC stands for “(Business) Solution Development LifeCycle”  Seed the Architecture-Driven approach so it does not operate top-down or bottom-up » Integrate the Architecture-Driven approach into standard and business specific architecture-driven workflows • e.g., AKDAR, GDM, SBAM, PEM, LSS (BPM pattern), CBM (SOA pattern) » Use an agile workflow-driven approach rather than rigid processes » Use architecture-driven approach from business strategy all the way down to product maintenance » Subject individuals to ongoing transformation processes  Flexible RUP-like or ASDE-like focus and introduces problem pattern set as an additional variable  Need to deal with individuals reaction to the constant need to adapt to change » Build conducive environments (e.g., game-metaphor, etc.)
  • 134. 134 Enterprise Strategy and Business Solutions Alignment Problem V i s i o n & S t r a t e g y B u s i n e s s S o l u t i o n D e v e l o p m e n t B u s i n e s s S o l u t i o n M a i n t e n a n c e Symptom #1: Business Solutions not aligned with Enterprise strategic goals Symptom #2: Business Solutions are not delivered in time and on budget and/or have poor quality Symptom #3: Business Solutions are difficult to evolve Symptom #4: Business Solutions are hard to maintain B u s i n e s s S o l u t i o n R e f a c t o r i n g Enterprise Business Solutions lack alignment with Enterprise Driven Initiatives
  • 135. 135 PDA Solution: Enterprise Architecture Management “Focusing on Business Model Improvements while Maintaining Enterprise Alignment” V i s i o n & S t r a t e g y B u s i n e s s S o l u t i o n D e v e l o p m e n t B u s i n e s s S o l u t i o n M a i n t e n a n c e B u s i n e s s S o l u t i o n R e f a c t o r i n g Enabler #5: Incremental Iterative Enterprise Transformation Methodology Enabler #1: Best Practice Process Patterns and Artifact Types Enabler #3: Extensible Framework for Traceable and Reusable Artifact Types and Methodologies Enabler #2: Best Practices Knowledge Base Enabler #4: Design and Runtime Tools
  • 136. 136 Strategy Enablement Process Patterns and Artifact Types “Enabler #1” Enterprise Strategy Enablement Project Strategy Enablement “Whole is Greater than the Sum of the Parts” + => Process Patterns: Artifacts: Traceability: Reusability: Legend Project Requirements & Architectural Models Project Strategy (EPO) Requirements Engineering (PT) Business Architecture (PT) (PT) Information Architecture Application Architecture (PT) (PT) Technology Architecture Project Requirements Enterprise Strategy (SPO) Enterprise Governance (SPO) Architecture Integration (SPO & ARB) Enterprise Requirements & Architectural Models Project Requirements Enterprise Strategy (SPO) Enterprise Governance (SPO) Project Strategy (EPO) Requirements Engineering (PT) Business Architecture (PT) (PT) Information Architecture Application Architecture (PT) (PT) Technology Architecture Enterprise Requirements & Architectural Models Project Requirements & Architectural Models Architecture Integration (SPO & ARB) SPO: Strategic Project Office ARB: Architecture Review Board EPO: Execution Project Office PT: Project Team
  • 137. 137 Strategy Enablement Process Patterns Detailed A Process Pattern Leads to a Methodology Once Specific Activities are Chosen to Implement a Vision Strategic Goals Elicitation (Net Promoter, DMAIC VOC, Competitive Analysis, etc.) Goal Decomposition Business Patterns Elicitation (e.g., SOA + BPM + BRM + BAM) Project Roadmap Definition Gated Governance Management Program Management (Context & Phase Planning) Project Definition Project Review Project Reuse Elicitation Project Activities Management Configuration Management Collaboration Management Enterprise Business Architecture (Business Architecture Definition/Evolution) Best Practices Maturity Assessment Enterprise Governance Definition (Enterprise Transformation Management, Governance Process Definition, Strategic Program Management, etc.) Project Governance Definition Requirements Retrieval (Current State) Requirements Definition (Future State) Requirements Management Test Management (Enterprise) Requirements Traceability Requirements Model Management Business Architecture Characterization Business Architecture Reuse Elicitation Goal-Driven Decomposition Business Patterns Elicitation Business Model Simulation Business Pattern-Driven Modeling (e.g., BPM Improvement via DMAIC Chartering and ROM modeling, SOA Component Business Modeling, etc.) Requirements Model Management (Traceability, Updates, etc.) Business Architecture Analysis/Design Business Architecture Deployment Information Architecture Analysis Refine Information Management Architecture Refine UI Management Architecture Information Architecture Design UI Management Architecture Design (Storyboarding, Wire frames definition, etc.) Product Selection Best Practices Knowledge Base Management Portfolio Management Project Technical Risks Assessment Project Architecture Review IT Strategy Application Architecture Analysis Reference Architecture Elicitation Application Architecture Design (Architectural/Design Patterns Elicitation, Implementation Patterns Elicitation, etc.) Product Selection Information Architecture Deployment Application Architecture Deployment Technology Architecture Analysis Refine Infrastructure Architecture Technology Architecture Design (Architectural/Design Patterns Elicitation, Implementation Patterns Elicitation, etc.) Product Selection Technology Infrastructure Deployment Project Requirements Enterprise Strategy (SPO) Enterprise Governance (SPO) Project Strategy (EPO) Requirements Engineering (PT) Business Architecture (PT) (PT) Information Architecture Application Architecture (PT) (PT) Technology Architecture Enterprise Requirements & Architectural Models Project Requirements & Architectural Models Architecture Integration (SPO & ARB)
  • 138. 138 Strategy Enablement Artifact Types Detailed Rules Workflow Project Requirements Enterprise Requirements & Architectural Models Project Requirements & Architectural Models Glossary Stakeholder Requests Business Objectives Features and Events Use Cases Business Model Business or Functional Requirements Non Functional Requirements Requirements Types Software Development Lifecycle Phases Requirements Engineering Location Organization Process Business Rules Pattern / Product / Enterprise Solution Reqs Business Rules Reqs Repository Enterprise Solution Patterns Requirements Enterprise Business Vocabulary Reqs Business Strategy and Innovation Reqs Enterprise Requirements Enterprise Project Requirements Req. Analysis Project Bus. Vocabulary Definition Strategy Definition Concept Definition Business Use Case Requirements Business Model Requirements Requirements Definition Requirements Model Categories Requirements Model Engineering Proj. Bus. Directives Business Objective Features and Events Functional Requirements Non- Functional Requirements Business Entity Requirements Business Process Requirements Bus/ Workflow Rules Reqs Process Model Requirements Location Requirements Organizational Requirements EAMF Catalogs and Enterprise Requirements Model Categories Enterprise Glossary Enterprise Business Rules Enterprise Solution Patterns Enterprise Strategies Pattern / Product / Enterprise Solutions Catalog Enterprise Projects (e.g. , Ent. Worker Services ) Design Relationships Bus. Arch. Engineering BUC Mdl Domain Model Entities Bus. Problem Force Hierarchies URN Mdl Candidate Bus. Arch. Styles Candidate Reference Projects Req Mdl Analysis Bus. Arch. Analysis Artifacts Bus. Arch. Design Artifacts Analysis Org. Mdl Loc. Mdl BUC Mdl Loc. Mdl Org. Mdl Process Mdl Capab. Matrix Reference EAMF Project (s) Reference Business Arch(s) Candidate Bus Pattern Hierarchies Bus. Pattern Hierarchies Bus. Arch. Model Bus. Arch. Patterns / Reuse Constraints Traceable Artifacts Reusable Artifacts
  • 139. 139 Extensible Framework and Best Practices Knowledge Base “Enablers #2 and #3 (Sample)” – EAMF Framework Summary of Capabilities  Extension of the TOGAF Industry Standard  http://www.opengroup.org/togaf/  Differentiators:  Business Pattern Oriented Architecture (POA) orientation  Extensible methodology based on business solution patterns  Extensible knowledge foundation based on best practices and ongoing strategies and business solution development  Artifact Traceability Focus  Agile Activity-Driven Approach  Solution Development Lifecycle agnostic  Solution-Driven Approach  Tool Agnostic Approach
  • 140. 140 Strategy Enablement From a Tools Perspective Enabler #4 (Sample): EAMF Framework Implementation Cognos Excel PowerPoint Visio EAMF Catalogs Repository jUCMNav TeamPlay EAMF Catalogs Repository CVS ClearCase Livelink/Twiki Excel IBM Rational RequisitePro/Telelogic Doors Proforma Provision Lombardi BluePrint jUCMNav TeamPlay EAMF Catalogs Repository Excel Powerpoint Visio IBM Rational RequisitePro Telelogic Doors Mercury Test Director IBM Rational RequisitePro/Telelogic Doors Proforma Provision Lombardi BluePrint jUCMNav TeamPlay EAMF Catalogs Repository Excel Powerpoint Visio etc. IBM Rational RequisitePro/Telelogic Doors ERWin Data Modeler EAMF Catalogs Repository PowerPoint Visio Company Approved SOA Tool Suite EAMF Product Catalog ApprovedTools EAMF Catalogs Repository Powerpoint Visio Sparx Systems EA EAMF Catalog Repository PowerPoint Visio Company Approved SOA Tool Suite EAMF Product Catalog ApprovedTools Sparx Systems EA EAMF Catalog Repository PowerPoint Visio Company Approved SOA Tool Suite EAMF Product Catalog ApprovedTools Project Requirements Enterprise Strategy (SPO) Enterprise Governance (SPO) Project Strategy (EPO) Requirements Engineering (PT) Business Architecture (PT) (PT) Information Architecture Application Architecture (PT) (PT) Technology Architecture Enterprise Requirements & Architectural Models Project Requirements & Architectural Models Architecture Integration (SPO & ARB)
  • 141. 141 Incremental Iterative Enterprise Transformation Methodology “Enabler #5” Initiation: Assess Maturity Level & next achievable level Preparation: Train organization as needed and plan projects execution Execution: Conduct project(s) using applicable methodology Hardening: Measure Success & adapt governance accordingly Deployment: Operate at given maturity level and assess viability Initiation Tollgate Review Preparation Tollgate Review Execution Tollgate Review Hardening Tollgate Review Deployment Tollgate Review For BPM Improvements, the maturity level may be assessed via BPMM and Six Sigma maturity levels For BPM Improvements, preparation involves champion training and Hoshin planning Conducting projects may involves ongoing organizational training and reviews Hardening involves a consolidation of the SPO team in charge of Enterprise governance Sustaining operation at a given maturity level may not be possible due to: changes in the project roadmap, ongoing SCR/IRs, evolution of Best Practices, or perception of customer discontent Transformation methodology needs to be applied incrementally to reach the desired level of Enterprise maturity established by sponsors upon the recommendation of experts (multiple iterations/projects may need to be conducted)
  • 142. 142 Strategy Enablement At Work Enterprise business model goal is to sustain double digit annual growth and align all business units with that goal Alignment Execution Methodology moves onto requirements model engineering activities and business architecture analysis and design conducted by project Business Architects in collaboration with application/ information/technology architects (requirements model is shared between the various group and is the central point of focus for collaboration) While the business architecture is still being refined, Alignment Execution Methodology activities are conducted on the Application and Information Architecture fronts (business architecture is “deployed” incrementally and iteratively on top of the application/ information architecture) Business unit X consults with the SPO to identify: (a) Their current maturity level with respect to the high-level vision (b) Business Unit Specific alignment goals (c) Alignment Elicitation Methodology SPO conducts a high-level goal decomposition, consults with the ARB, matches the business domain forces with the forces that drive best practice business reference architectures, and identifies a high-level vision: e.g., SOA + BPM + BRM + BAM With the help of the SPO and the EAM infrastructure, alignment tenets are identified by applying goal patterns and best practices, and the applicable alignment elicitation methodology is identified Business unit X applies the alignment elicitation methodology to identify their maturity level (i.e., common denominator) with respect to the high-level vision and a set of alignment projects/opportunities SPO, ARB, and Business unit X prioritize the projects and elevate a subset of them into the 4-year project roadmap and select an appropriate alignment execution methodology (ARB inputs is key to identify constraints imposed by existing infrastructure) Gated execution of multiple projects starts: Projects that are not aligned with the Enterprise strategy breach gate 1 Projects that pass through gate 1 are funded SPO updates the roadmap every six months to account for changes in strategic directions Alignment Execution Methodology is applied to individual projects starting with requirements engineering activities conducted by project BAs: Gate 2 review occurs at the end of the requirements definition phase (aka. Inception phase) On selected project a 3-months timeline is imposed on the delivery of a CPD prior to Gate 2 review While the business/application/information architectures are still being refined, Alignment Execution Methodology activities are conducted on the Technology Architecture front (application/information architecture is “deployed” incrementally and iteratively on top of the technology architecture Project Requirements Enterprise Strategy (SPO) Enterprise Governance (SPO) Project Strategy (EPO) Requirements Engineering (PT) Business Architecture (PT) (PT) Information Architecture Application Architecture (PT) (PT) Technology Architecture Enterprise Requirements & Architectural Models Project Requirements & Architectural Models Architecture Integration (SPO & ARB) 1 2 3 4 5 6 7 8 9 10 11
  • 143. 143 Enterprise Architecture Management EAMF Activities Integrate Seamlessly with the Company X Project Lifecycle E A M F Disciplines & Process Workflows Supporting Workflows Initiation Stage Planning Stage Design Stage Concept Phase Elaboration Phase Build/Test Stage Construction Phase Testing Phase Install/Close Stage ROI/Benefits Stage Iter. #1 ... Iter. #2 Iter. #n Iter. #n+1 ... Iter. #m Iter. #m+1 Iter. #m+2 Administration Management Environment Planning Req. Engineering HL Analysis HL Design Det. Analysis Det. Design Architecture Implementation Product Mapping Architecture Deployment Application/Tests Design Deployment/Test Implementation/Test : ESLM/WITTS : Sep. of Funds : Pay Code Aut. Project Activity Threads: Production Elev. Phase Warranty Phase
  • 144. 144 Enterprise Architecture Management Integration with the Company X Project Lifecycle all Technology Services EAMF (Design Perspective) Development Tools Design Tools Architecture Tools Solution Development Lifecycle (Partial View) Stage 2 Stage 1 Project Plan Business Project List defines defines Select Architectural Pattern(s) (Best Practices) Determine Reference Architecture(s) Select Design Pattern Select Implementation Pattern Determine Reference Implementation Business Requirements Solution Architecture uses Project Manager (EPO) uses Get Project Charter Stage 3 Technical Design Technical Lead uses uses defines Select Implementation Idiom (sample) Stage 4 Software uses Developer uses Builds & Deploys uses Elaborated Requirements Stage 5 Automated Test builds and executes Tester uses Project Architects Select Code Generation Tool Select Technical Service uses Search Available Technical Services Architecture Design Heuristics: Simplicity Maintainability Flexibility/Extensibility (without complexity) Scalability Availability etc. realizes uses Business & Technology Alignment Tactically Driven Accidental Architectures Difficult to maximize technology investment across enterprise Business Analyst follows elicits elicits uses collaborates with collaborates with collaborates with
  • 145. 145 2 Software Engineering Fundamentals Agenda 1 Instructor and Course Introduction 4 Summary and Conclusion 3 Towards a Pattern-Driven SE Methodology
  • 146. 146 Course Assignments  Individual Assignments  Reports based on case studies / class presentations  Project-Related Assignments  All assignments (other than the individual assessments) will correspond to milestones in the team project.  As the course progresses, students will be applying various methodologies to a project of their choice. The project and related software system should relate to a real-world scenario chosen by each team. The project will consist of inter-related deliverables which are due on a (bi-) weekly basis.  There will be only one submission per team per deliverable and all teams must demonstrate their projects to the course instructor.  A sample project description and additional details will be available under handouts on the course Web site
  • 147. 147 Team Project  Project Logistics  Teams will pick their own projects, within certain constraints: for instance, all projects should involve multiple distributed subsystems (e.g., web- based electronic services projects including client, application server, and database tiers). Students will need to come up to speed on whatever programming languages and/or software technologies they choose for their projects - which will not necessarily be covered in class.  Students will be required to form themselves into "pairs" of exactly two (2) members each; if there is an odd number of students in the class, then one (1) team of three (3) members will be permitted. There may not be any "pairs" of only one member! The instructor and TA(s) will then assist the pairs in forming "teams", ideally each consisting of two (2) "pairs", possibly three (3) pairs if necessary due to enrollment, but students are encouraged to form their own 2-pair teams in advance. If some students drop the course, any remaining pair or team members may be arbitrarily reassigned to other pairs/teams at the discretion of the instructor (but are strongly encouraged to reform pairs/teams on their own). Students will develop and test their project code together with the other member of their programming pair.
  • 148. 148  Document Transformation methodology driven approach » Strategy Alignment Elicitation • Equivalent to strategic planning – i.e., planning at the level of a project set » Strategy Alignment Execution • Equivalent to project planning + SDLC – i.e., planning a the level of individual projects + project implementation  Build a methodology Wiki & partially implement the enablers  Apply transformation methodology approach to a sample problem domain for which a business solution must be found  Final product is a wiki/report that focuses on » Methodology / methodology implementation / sample business-driven problem solution Team Project Approach - Overall
  • 149. 149  Document sample problem domain and business-driven problem of interest » Problem description » High-level specification details » High-level implementation details » Proposed high-level timeline Team Project Approach – Initial Step
  • 150. 150 Assignments & Readings  Readings » Slides and Handouts posted on the course web site » Textbook: Chapters 1 & 2 & Part One-Chapter 3  Assignment #1 » Team Project proposal (format TBD in class) » Presentation topic proposal (format TBD in class)  Project Frameworks Setup (ongoing) » As per reference provided on the course Web site
  • 151. 151 Next Session: Software Development Lifecycles (SDLCs)  Software Engineering Detailed  Process Models  Agile Development  Software Engineering Knowledge  Roles and Types of Standards  ISO 12207: Life Cycle Standard  IEEE Standards for Software Engineering Processes and Specifications  Summary and Conclusion  Readings  Assignment #1  Course Project