Introduction to OOAD and UML

advertisement
Y2 eProjects
Session 1 – eProject Overview
Objectives
What is eProject?
 Software Development Life Cycle
 eProject Process and Tools
 Management
 The use of PMS
 How are eProjects evaluated?
 Best Practices

ACCP i7.1\Sem3_4\eProject\T1
2
What is eProject?
“eProject is a step by step learning
environment that closely simulates the
classroom and lab based learning
environment into actual implementation”
 In eProjects, students have a chance to put
all knowledge and skills together to build a
software using key technologies (.NET and
Java)

ACCP i7.1\Sem3_4\eProject\T1
eProject Objectives






Practice iterative software development using key
technologies
Collaborate in software development teams
Usage of tools and processes for software construction
Mentoring through e-mail support and face-to-face
discussion.
Feel real life scenario and help to create complex and
useful applications.
Enhance skills and add value
ACCP i7.1\Sem3_4\eProject\T1
Software Development Life
Cycle

Software Development Life Cycle (SDLC) is a
sequence of activities carried out by analysts,
designers, and users to develop and implement
an software system.
Phases of SDLC
ACCP i7.1\Sem3_4\eProject\T1
SDLC Phases (cont’d)
Preliminary Investigation

An important outcome of the preliminary investigation is
determining whether the system to be developed is
feasible or not.


If the investigation weighs against the project's success, the project
is discontinued
Feasibility factors:







Technology
Economic
Legal
Operational
Schedule
Resource
Cultural
OOAD with UML / Session 1 / 6 of 27
SDLC Phases (cont’d)
Requirement Analysis (Analysis)



Involves study of the current business system in
detail and to find out how it works and where
the improvements have to be made.
The project team uses techniques to fully
understand what the project should deliver.
One of the outcomes of RA is a formal document
representing all important aspects of the system
such as System Requirements Specification,
Use cases or user stories, etc.
ACCP i7.1\Sem3_4\eProject\T1
SDLC Phases (cont’d)
Design






The design phase states how a system will meet the
requirements identified during the systems analysis phase as
mentioned in the Requirements Specifications.
Identification of data entry forms, data elements, reports, outputs
the new system should produce, data elements and tables for
database.
Identification of objects (OOAD method) and interaction between
them to satisfy the requirements.
Sketch the form or display (UI) as expected to appear at the end
of completion of the system.
Computation procedures explaining the process of deriving the
output from given input.
Design emphasizes a conceptual solution (in software and
hardware) that fulfills the requirements, rather than its
implementation.
SDLC Phases (cont’d)
Software Construction




The project teams use program languages,
supporting frameworks and tools to create
executable programs
Construction may include debugging, unit testing
and system integration
During software construction, code standard can
be used
The project teams usually use a version control
to stimulate code sharing and team collaboration
ACCP i7.1\Sem3_4\eProject\T1
SDLC Phases (cont’d)
Testing


Software testing is the process of determining if
the things work as expected
Artifact-under-tested could be:





User Documentation,
Source Code Documentation,
Processes,
Programs, etc.
There are several levels of testing:



Unit Testing
Integration Testing
System Testing
SDLC Phases (cont’d)

System Deployment (aka. System Implementation)




Developed system is deployed at the user’s site for use
User personnel are trained
The data files needed by the system are constructed
System Maintenance


Due to environmental changes, the software may turn obsolete and it
may call for modifications and enhancements for its effective use.
The activity of system maintenance may vary depending on the scale of
modifications and enhancements.
The Waterfall Process



Basic idea: Move
from the “big picture”
idea of problem to
delivered solution.
Idealized picture of
development process.
Problem! What do we
do if a mistake or
misunderstanding is
sent from one step to
the next step.
Requirements
ACCP i7.1\Sem3_4\eProject\T1
Analysis
Design
Coding
Testing
Maintenance
The Rational Unified Process
(RUP)

RUP is a Software Engineering Process using an
iterative approach to software engineering.




RUP is model centric using Universal Modelling
Language (UML)
RUP is a configurable process which can be tailored to a
companies needs.


13
Based on spiral model.
Product owned by IBM but developed by Rational Software (80’s
to 90’s)
Can be configured to meet organizations needs.
RUP follows and covers six fundamental best practices
RUP
Effective Deployment of 6 Practices
1.
Develop Software Iteratively


2.
Manage Requirements

3.
Track documents, decisions, uses UML, Design
Driven Development
Use Reusable Architectures (Component
Based)

14
To complex to do in “one shot”
Limit risk
Leverage off existing architectures (Beans, .NET,
etc.)
RUP
Effective Deployment of 6 Practices
1.
Visually Model Software


2.
Verify Software Quality


3.
Assessment built into all activities involving all participants.
Reliability, performance (system and application)
Control Changes to Software

15
Assist in planning, design, implementation, etc. through modeling
(UML)
Code written through “graphical building blocks.”
Assure changes are tracked, monitored, and successful.
RUP
2 Dimensions – Dynamic and Static Aspect






Dynamic aspects (Time)
Horizontal – Time
aspect of process:
Cycles
Phases
Iterations
Milestones
Vertical – Static
aspects of process:




16
Activities
Artifacts
Workers
Workflows
Static
aspects
(Content)
Image from RUP (Wikipedia)
RUP Phases

Four phases make up a product lifecycle or generation



Software lifecycle broken into cycles: one product generation.
Phases in RUP are as important as steps (disciplines).
Each phase ends with a milestone.


Point in time where critical decisions MUST be made.
Fail milestone and project can be cancelled!
Major Milestones
Inception
Elaboration
Construction
Transition
Agile Software Development
Agile Method
 Agile = ‘light-weight’
 Focus team
communication rather
than heavy-weighted
process
 Remove ‘overhead’
during software
development
 Increase team’s
productivity
Agile Manifesto
 Individuals and
interactions over
processes and tools
 Working software over
comprehensive
documentation
 Customer collaboration
over contract negotiation
 Responding to change
over following a plan
ACCP i7.1\Sem3_4\eProject\T1
Agile Software Development
2 well-defined methods
Img.: Sutherland
Img.: wikipedia.org
Scrum
eXtreme Programming
ACCP i7.1\Sem3_4\eProject\T1
eProject Orientation (T1)
Instructor
eProject Registration
eProject Request
OOAD (T2 – T4)
CAH
3 Weeks
The
eProject
Process
at FPTAptech
Project Requirements
Release
Project Starts
10 days
Requirement + Plan
Verification (T5)
Send Project Progress
Report 1 to India
Project Demo 1-3
(L1-L3)
10 days
Student
Send Project Progress
Report 2 to India
Project Submission
Evaluation
Project Defense
Evaluation
ACCP i7.1\Sem3_4\eProject\T1
Final Result
Development Environment

Programming Language




Frameworks







Visual Studio 2005
NetBeans
Others
Integrated Project Management Environment: http://pms.aptech.ac.vn


.NET 2.0 (S3)
J2EE 1.5 (s4)
IDEs


C# (Sem3)
Java (Sem4)
Others (JavaScript, VBScript, etc.)
Issues(Time, Bugs, Features) management
Software Control Management: SVN
SVN Client: TortoiseSVN
Others
ACCP i7.1\Sem3_4\eProject\T1
Management

India



Phased Project Status tracking
Email communication
Vietnam



Life-time status tracking
Face-to-face mentoring and communication
Software-based artifacts tracking and
management( code, docs, plan)
ACCP i7.1\Sem3_4\eProject\T1
The use of PMS

PMS (http://pms.aptech.ac.vn) is an Integrated
Project Management Environment which
support:







Project management
Time tracking
Features tracking
Bug Tracking
Software Configuration Management
PMS is used to stimulate team collaboration and
management
Industry-like Simulation
ACCP i7.1\Sem3_4\eProject\T1
The PMS
ACCP i7.1\Sem3_4\eProject\T1
A team’s workspace in PMS
ACCP i7.1\Sem3_4\eProject\T1
How are eProjects evaluated?

India


I_Mark
Vietnam

V_Mark
eProject Mark = 50% I_Mark + 50% V_Mark
 Pass Condition: eProject Mark >= 40%

ACCP i7.1\Sem3_4\eProject\T1
Why do Projects Fail?









Inadequate cost and time estimation
Bad plan
Bad managers
The theory of project management is not put into
practice.
The project scope changes.
The incorrect project methodology is used.
Requirements have major changes.
Communications are poor.
Testing and/or inspections are poorly done.
J. Davidson Frame
Project Management Methodologies by Jason
Charvat, JOHN WILEY & SONS, 2003, p12
ACCP i7.1\Sem3_4\eProject\T1
Best Practices
Understand what customer wants
 Adequate management
 Team collaboration
 Collaborate effectively with other tiers
(customers, instructors)
 Learn and use best practice from previous
teams

ACCP i7.1\Sem3_4\eProject\T1
References and Readings






Aptech India, eProject Guide (Hard Copy)
eProject Implementation Guide (Students and
Instructors)
OOAD, ACCP 2003 Curriculum
Agile Alliance, Agile
Manifesto(AgileAlliance.org)
IBM, Rational Unified Process – Best Practices
for Software Development Teams
Jason Charvat (2003), Project Management
Methodologies, JOHN WILEY & SONS.
ACCP i7.1\Sem3_4\eProject\T1
Download