Software Engineering Fundamentals
Software Engineering Fundamentals
Agenda
11 Instructor
Instructor and
and Course
Course Introduction
Introduction
22 Software
Software Engineering
Engineering Fundamentals
Fundamentals
33 Towards
Towards aa Pattern-Driven
Pattern-Driven SE
SE Methodology
Methodology
44 Summary
Summary and
and Conclusion
Conclusion
2
Who am I?
- Profile -
¾ 27 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 developed in Fall 2008), develop proof of
concept software, recruit skilled graduates, and increase the companies’ visibility
3
Email [email protected]
MSN IM [email protected]
LinkedIn http://www.linkedin.com/in/jcfranchitti
Woo hoo…find the word
of the day… Twitter http://twitter.com/jcfranchitti
Skype [email protected]
4
What is the class about?
Textbooks:
» Software Engineering: A Practitioner’s Approach
Roger S. Pressman
McGraw-Hill Higher International
ISBN-10: 0-0712-6782-4, ISBN-13: 978-00711267823, 7th Edition (04/09)
» http://highered.mcgraw-hill.com/sites/0073375977/information_center_view0/
» http://highered.mcgraw-
hill.com/sites/0073375977/information_center_view0/table_of_contents.html
Icons / Metaphors
Information
Common Realization
Knowledge/Competency Pattern
Governance
Alignment
Solution Approach
66
Helpful Preliminary Knowledge
10
Software Requirements
Agenda
11 Instructor
Instructor and
and Course
Course Introduction
Introduction
22 Software
Software Engineering
Engineering Fundamentals
Fundamentals
33 Towards
Towards aa Pattern-Driven
Pattern-Driven SE
SE Methodology
Methodology
44 Summary
Summary and
and Conclusion
Conclusion
12
Agenda – Software Engineering Fundamentals
22 Software
Software Engineering
Engineering Fundamentals
Fundamentals
13
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.
14
What is Software? (2/2)
15
increased failure
rate due to side effects
Failure
rate
change
actual curve
idealized curve
Time
16
Software Engineering
17
Software Costs
18
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
19
Software Applications
System software
Application software
Engineering/scientific
software
Embedded software
Product-line software
WebApps (Web
applications)
AI software
20
Software—New Categories
21
Legacy Software
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
23
24
Efficiency Costs
Cost
Ef ficiency
25
26
Characteristics of WebApps (2/2)
27
28
Agenda – Software Engineering Fundamentals
22 Software
Software Engineering
Engineering Fundamentals
Fundamentals
29
30
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?
31
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?
32
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
33
34
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
35
Waterfall Model
Requirements
definition
System and
software design
Implementation
and unit testing
Operation and
maintenance
36
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
37
Evolutionary Development
Concurr ent
activities
Initial
Specification
version
Outline Intermediate
Development
description versions
Final
Validation
version
38
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
39
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
40
Summary of Sub-Section’s Key Points
41
22 Software
Software Engineering
Engineering Fundamentals
Fundamentals
42
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
43
44
Trace Symptoms to Root Causes
45
Risk Management
46
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
47
22 Software
Software Engineering
Engineering Fundamentals
Fundamentals
48
Hybrid Process Models
49
50
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
51
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
53
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
54
PDCA Approach
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
55
56
Template for a Spiral Round at Work - Catalogue Spiral (2/3)
57
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
58
Spiral Model Flexibility
59
60
Spiral Model Limitations
61
63
64
Summary of Sub-Section’s Key Points
65
22 Software
Software Engineering
Engineering Fundamentals
Fundamentals
66
Professional Responsibility
Ethical Issues
Confidentiality
Competence
Intellectual property rights
Computer misuse
68
Summary of Sub-Section’s Key Points
69
22 Software
Software Engineering
Engineering Fundamentals
Fundamentals
70
Section Outline
71
Best Practices
Process Made Practical
Develop Iteratively
Manage Requirements
Use Component
Architectures
Model Visually (UML)
Continuously Verify Quality
Manage Change
72
Waterfall Development Characteristics
Delays confirmation of
critical risk resolution
Waterfall Process Measures progress by
assessing work-
Requirements
analysis products that are poor
Design predictors of time-to-
Code and unit test
completion
Subsystem integration Delays and aggregates
System test
integration and testing
Precludes early
deployment
Frequently results in
major unplanned
iterations
73
Requirements
Analysis & Design
Planning
Implementation
Initial
Planning Management
Environment
Test
Evaluation
Deployment
Each iteration
results in an
executable release
74
Risk Profiles
Waterfall Risk
Risk Iterative Risk
Risk Reduction
Time
75
Best Practices
Process Made Practical
Develop Iteratively
Manage Requirements
Use Component
Architectures
Model Visually (UML)
Continuously Verify Quality
Manage Change
76
Requirements Management
78
Map of the Territory
Problem Problem
Space
Needs
Tra
Solution
cea
Features Space
bil
The
ity
Use Cases and Product
Software To Be
Requirements Built
Test
Procedures Design User
Docs
79
Best Practices
Process Made Practical
Develop Iteratively
Manage Requirements
Use Component
Architectures
Model Visually (UML)
Continuously Verify Quality
Manage Change
80
Resilient, Component-Based Architectures
Resilient
Meets current and future requirements
Improves extensibility
Enables reuse
Component-based
Reuse or customize components
Select from commercially-available
components
Evolve existing software incrementally
81
Staffing
Application-
Application-
specific
Delivery
Business-
Business-
Intellectual control specific
Middleware
Manage complexity
System-
System-
Maintain integrity software
82
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
83
84
Visual Modeling with UML 1.X
Static
Multiple views Diagrams
Precise syntax
Dynamic
and semantics Diagrams
Class
Diagrams
Use-Case
Diagrams Object
Sequence Diagrams
Diagrams
Statechart Deployment
Diagrams Diagrams
Activity
Diagrams
85
Use-case
Statechart
diagram
Class diagram diagram add file
DocumentList
add( )
Actor A Actor B fetchDoc( ) delete( )
name : int
docid : int
sortByName( ) numField : int Writing
add file [ numberOffile==MAX ] /
flag OFF
get( )
open( ) read() fill the
Use Case 2 close( ) code..
Openning
FileList read( )
sortFileList( )
fList create( )
fillDocument( ) close file
add( )
delete( )
1
rep
File
Deployment
Repository
diagram
fillFile( )
Collaboration 9: sortByName ( )
Repository DocumentList
2: fetchDoc( )
FileManager
Wi ndow95
¹®¼-°ü¸®
Ŭ¶óÀ̾ðÆ®.EXE
Wi ndows95
Wi ndows95
8: fillFile ( ) Wi ndows
NT
IBM
7: readFile ( ) Mainframe
5: readDoc ( )
document : Document
repository : Repository µ¥ÀÌŸº£À̽º¼- ¹ö
user
mainWnd fileMgr :
FileMgr
document :
Document
gFile repository
Component
ƯÁ¤¹® ¼-¿¡ ´ëÇÑ º¸±â¸¦
»ç¿ëÀÚ°¡ ¿äÃ»Ç Ñ´Ù.
1: Doc view request ( )
2: fetchDoc( )
3: create ( )
diagram Target
System
4: create ( )
5: readDoc ( )
Forward and
7: readFile ( )
8: fillFile ( )
Reverse
Sequence Engineering
diagram
86
UML 1.X Notation Baseline
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
89
Architectural
Functional View
view
DiceSystem Dice
DicePersist Displayable Vizuali zation
HighScore
Play
Observable
Player
PersistKit
Observer
Find Beverage
[ no coffee ] [ no cola ]
Consistency Behavioral
Randomizer
Random
[ foundcoffee]
[ found cola]
Static View
system
View
Put Coffee in Filter Add Water toReservoir Get Cups Get Can of Cola
Coverage
Put Filter inMachine d1: Die
2: r1=roll( )
Game Computer
Player
Die
1: play( )
(fromUseCaseView) Rolls game: Dice
Turn onMachine
name:String faceValue:int=1 SGBD computer
Game
score:int=0; 1 2 roll() 3: r2=roll( )
^coffeePot.TurnOn
BrewCoffee play() 1
1 d2: Die
Play the
light goes out
Plays
Momo: Player game File
Maybe a Remote
a file system
Includes S ystem
1
Pour Coffee Drink Beverage DiceGame
: DiceGame d1 : Die d2 : Die
: Player
1 1
ca ncel
Scoring
1: play( )
1 / S tart game start 2: roll( )
HighScore Ready to play Player ready
e ntry: ge t player name
3: roll( )
Quit
Cancel play
[ turn>=10 ] In progress
entry: turn++
90
New in UML 2.X (1/2)
(http://www.omg.org/gettingstarted/what_is_uml.htm)
92
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
93
94
Test All Dimensions of Software Quality
Does my application
respond acceptably?
Reliability
Does my application
do what’s required? Verification of
sustained
application Does the system
operation perform under
Functionality production
load?
Verification of each
usage scenario
Performance
Test performance
under expected &
worst-case load
95
UML Model
and
Implementation
Tests
96
Practice 6: Manage Change
Best Practices
Process Made Practical
Develop Iteratively
Manage Requirements
Use Component
Architectures
Model Visually (UML)
Continuously Verify Quality
Manage Change
97
Workspace Parallel
Management Development
CM is more
than just REPORT ALERT
Build
Process
check-in and Management
Integration
check-out
98
Aspects of a Configuration Management (CM) System
99
Activity-Based Management
Tasks
Defects
Enhancements
Progress Tracking
Charts
Reports
100
Best Practices Reinforce Each Other
Best Practices
Develop Iteratively
Validates architectural
Use Component Architectures decisions early on
Addresses complexity of
Model Visually (UML) design/implementation incrementally
101
22 Software
Software Engineering
Engineering Fundamentals
Fundamentals
102
Section Outline
103
Foundations of RUP
104
RUP Best Practices Implementation
Best Practices
Process Made Practical
Develop Iteratively
Manage Requirements
Use Component Architectures
Model Visually (UML)
Continuously Verify Quality
Manage Change
105
Iterative Approach
Guidance for activities
and work products Requirements
106
A Team-Based Definition of Process
107
time
baseline architecture
» Construction - Build the product
user community
108
Phase Boundaries Mark Major Milestones
time
109
110
Workflows Produce Models
Models
Implemented Verified By
Realized By By
Realized Business Use- Use-Case
By Case Model Model
OK
B OK
B B B Fail
Automated
Business By Design Model Implementation Test Model
Object Model Model
111
Workflows
group
activities
logically
In an iteration,
you walk
through all
workflows
112
Workflows Guide Iterative Development
Business Modeling:
Workflow Details
Requirements:
Workflow Details
113
Notation
Role
Detail a
Requirements Use Case
Specifier
responsible for
Artifact A piece of
information that is
produced, modified,
or used by a process
Use Case Use-Case
Package
114
Roles Are Used for Resource Planning
Each individual in
the project is
assigned to one
or several roles
115
Example
Requirements:
Business Vision Stakeholder Vision Requirements
Rules Requests (refined) Supplementary Management
Specifications Plan Workflow Detail
“Define the
Requirements
Attributes System”
Develop Manage
Vision Dependencies
System Requirements
Analyst Attributes
(refined)
Capture a Find Actors
Common and Use Cases
Vocabulary
Use-Case Model
(refined)
Use-Case
Modeling Business Use Case
Glossary (outlined)
Glossary Guidelines Object Model Use-Case Model
(refined) Business
Use-Case Model
116
Overview of Rational Unified Process Concepts
117
118
Sample RUP Artifacts Definition
Artifacts Definitions
Investment Concept Outlines the project’s purpose, scope, costs, benefits and risks of the investment and is used
Statement Business Case 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 Assesses the impact of all development projects introducing significant architectural or high-
Questionnaire level design changes
Use Case Specifications Defines the functional requirements for the system with use case diagrams
Supplementary Defines the nonfunctional requirements of the system
Specifications
Software Architecture Provides a comprehensive architectural overview of the system, using a number of different
Document 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
119
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. 121
122
Agenda – Software Engineering Fundamentals
22 Software
Software Engineering
Engineering Fundamentals
Fundamentals
123
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
124
Agile Software Development Ecosystems
Agenda
11 Instructor
Instructor and
and Course
Course Introduction
Introduction
22 Software
Software Engineering
Engineering Fundamentals
Fundamentals
33 Towards
Towards aa Pattern-Driven
Pattern-Driven SE
SE Methodology
Methodology
44 Summary
Summary and
and Conclusion
Conclusion
126
Section Objectives
127
128
Limitations of RUP Approach
Models
Implemented Verified By
Realized By By
Realized Business Use- Use-Case
By Case Model Model
OK
B OK
B B B Fail
Automated
Business By Design Model Implementation Test Model
Object Model Model
131
133
134
Strategy Enablement Process Patterns and Artifact Types
“Enabler #1”
135
136
Strategy Enablement Artifact Types Detailed
Traceable Artifacts
137
138
Strategy Enablement From a Tools Perspective
Enabler #4 (Sample): EAMF Framework Implementation
139
140
Strategy Enablement At Work
Enterprise business model goal is to sustain Enterprise Enterprise Business unit X consults with the SPO to
double digit annual growth and align all Strategy Governance 3 identify:
business units with that goal (SPO) (SPO) (a) Their current maturity level with respect
1
to the high-level vision
(b) Business Unit Specific alignment goals
Enterprise (c) Alignment Elicitation Methodology
SPO conducts a high-level goal
Requirements
decomposition, consults with the ARB,
&
matches the business domain forces with 4
Architectural With the help of the SPO and the EAM
the forces that drive best practice business
Models infrastructure, alignment tenets are identified
reference architectures, and identifies a 2
by applying goal patterns and best
high-level vision:
practices, and the applicable alignment
e.g., SOA + BPM + BRM + BAM
elicitation methodology is identified
Project
7
Strategy Business unit X applies the alignment
Gated execution of multiple projects starts: (EPO) elicitation methodology to identify their
Projects that are not aligned with the maturity level (i.e., common denominator)
Enterprise strategy breach gate 1 5
with respect to the high-level vision and a
Projects that pass through gate 1 are funded set of alignment projects/opportunities
SPO updates the roadmap every six months
to account for changes in strategic directions SPO, ARB, and Business unit X prioritize the
Project projects and elevate a subset of them into
Requirements the 4-year project roadmap and select an
Alignment Execution Methodology is applied
appropriate alignment execution
to individual projects starting with
methodology (ARB inputs is key to identify
requirements engineering activities
constraints imposed by existing
conducted by project BAs: 8 6
Requirements Architecture infrastructure)
Gate 2 review occurs at the end of the
Engineering Integration
requirements definition phase (aka.
(PT) (SPO & ARB)
Inception phase)
On selected project a 3-months timeline is While the business architecture is still being
imposed on the delivery of a CPD prior to refined, Alignment Execution Methodology
Business Application 10
activities are conducted on the Application
Gate 2 review
Architecture Architecture and Information Architecture fronts (business
(PT) (PT) architecture is “deployed” incrementally and
Project iteratively on top of the application/
Requirements information architecture)
&
Alignment Execution Methodology moves 9 Architectural
onto requirements model engineering Models While the business/application/information
activities and business architecture analysis architectures are still being refined,
and design conducted by project Business (PT) (PT) 11
Alignment Execution Methodology activities
Architects in collaboration with application/ Information Technology are conducted on the Technology
information/technology architects Architecture Architecture
Architecture front (application/information
(requirements model is shared between the architecture is “deployed” incrementally and
various group and is the central point of iteratively on top of the technology
focus for collaboration) architecture
141
142
Enterprise Architecture Management
Integration with the Company X Project Lifecycle all
143
Agenda
11 Instructor
Instructor and
and Course
Course Introduction
Introduction
22 Software
Software Engineering
Engineering Fundamentals
Fundamentals
33 Towards
Towards aa Pattern-Driven
Pattern-Driven SE
SE Methodology
Methodology
44 Summary
Summary and
and Conclusion
Conclusion
144
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
145
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.
146
Team Project Approach - Overall
148
Assignments & Readings
Readings
» Slides and Handouts posted on the course web site
» Textbook: Chapter 1 & Part One-Chapter 2
Assignment #1
» Team Project proposal (format TBD in class)
» Presentation topic proposal (format TBD in class)
149
Lifecycle Phases
Traditional Lifecycle Models
Alternative Techniques
Homework #1
Project #1
150
Any Questions?
151