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