May 2, 2015 1 May 2, 2015May 2, 2015May 2, 2015 Azusa, CA Sheldon X. Liang Ph. D. Software Engineering in CS at APU Azusa Pacific University, Azusa, CA.

Slides:



Advertisements
Similar presentations
Principles That Guide Practice Unit II
Advertisements

Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
Prescriptive Process models
PROCESS FRAMEWORK Lecture - 3. Topics covered PROCESS FRAMEWORK PROCESS MODELS DIFFERENCE.
Software Process Models
April 30, April 30, 2015April 30, 2015April 30, 2015 Azusa, CA Sheldon X. Liang Ph. D. Software Engineering in CS at APU Azusa Pacific University,
May 3, May 3, 2015May 3, 2015May 3, 2015 Azusa, CA Sheldon X. Liang Ph. D. Software Engineering in CS at APU Azusa Pacific University, Azusa, CA.
Chapter 4 Principles that Guide Practice
May 14, May 14, 2015May 14, 2015May 14, 2015 Azusa, CA Sheldon X. Liang Ph. D. Software Engineering in CS at APU Azusa Pacific University, Azusa,
W5HH Principle As applied to Software Projects
Chapter 5 Software Engineering Practice
August 19, August 19, 2015August 19, 2015August 19, 2015 Azusa, CA Sheldon X. Liang Ph. D. CS 470 Software Engineering I Azusa Pacific University,
Chapter 4 Requirements Engineering
1 COSC 4406 Software Engineering COSC 4406 Software Engineering Haibin Zhu, Ph.D. Dept. of Computer Science and mathematics, Nipissing University, 100.
Chapter 2 The process Process, Methods, and Tools
1 REQUIREMENT ENGINEERING Chapter 7. 2 REQUIREMENT ENGINEERING Definition Establishing what the customer requires from a software system. OR It helps.
1M.Sc.(I.T.), VNSGU, Surat. Structured Analysis Focuses on what system or application is required to do. It does not state how the system should be implement.
1 Chapter 5 Practice: A Generic View Software Engineering: A Practitioner’s Approach, 6th edition by Roger S. Pressman.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
Design Issues Practice: A generic View Design Principles.
Chapter 2 소프트웨어공학 Software Engineering 임현승 강원대학교
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
1 5.1 Software Engineering Practice  Provide value to the user  KIS—keep it simple!  Maintain the product and project “vision”  What you produce,
1 Chapter 5 Software Engineering Practice. 2 What is “Practice”? Practice is a broad array of concepts, principles, methods, and tools that you must consider.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
Coming up: Software Engineering: A Practitioner’s Approach, 6/e Chapter 5 Practice: A Generic View copyright © 1996, 2001, 2005 R.S. Pressman & Associates,
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
CS 8532: Adv. Software Eng. – Spring 2009 Dr. Hisham Haddad Chapter 5 CS 8532: Advanced Software Engineering Dr. Hisham Haddad Class will start momentarily.
SOFTWARE DESIGN.
Software Engineering Saeed Akhtar The University of Lahore Lecture 7 Originally shared for: mashhoood.webs.com.
Chapter 7 실무가이드 원칙 Principles that Guide Practice
Chapter 7 Software Engineering Introduction to CS 1 st Semester, 2015 Sanghyun Park.
Software Engineering Saeed Akhtar The University of Lahore Lecture 6 Originally shared for: mashhoood.webs.com.
1. copyright © 1996, 2001, Software Engineering a “quality” focus process model methods tools.
Software Design: Principles, Process, and Concepts Getting Started with Design.
1 Software Engineering: A Practitioner’s Approach, 6/e Chapter 5 Practice: A Generic View Software Engineering: A Practitioner’s Approach, 6/e Chapter.
Chapter : Project Management Concept
By Germaine Cheung Hong Kong Computer Institute
1 Software Engineering: A Practitioner’s Approach, 7/e Chapter 2 Process: A Generic View Software Engineering: A Practitioner’s Approach, 7/e Chapter 2.
Principles That Guide Practice
Software Engineering Principles Practical Advice and Steps for Managing Your Project.
Requirement Engineering
Unit – I Presentation. Unit – 1 (Introduction to Software Project management) Definition:-  Software project management is the art and science of planning.
CS 281 Intro to Software Engineering Lecture 02 Software Engineering (1)
February 19, February 19, 2016February 19, 2016February 19, 2016 Azusa, CA Sheldon X. Liang Ph. D. Software Engineering in CS at APU Azusa Pacific.
February 27, February 27, 2016February 27, 2016February 27, 2016 Azusa, CA Sheldon X. Liang Ph. D. Software Engineering in CS at APU Azusa Pacific.
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e (McGraw-Hill, 2009) Slides copyright 2009 by Roger Pressman.1.
CS 281 Intro to Software Engineering Lecture 08b Principles that Guide Practice (1)
March 19, March 19, 2016March 19, 2016March 19, 2016 Azusa, CA Sheldon X. Liang Ph. D. Software Engineering in CS at APU Azusa Pacific University,
Software Design. Introduction Designing engineering encompasses the set of principles concepts and practices that lead to the development of a high quality.
Chapter 2: The Process. What is Process? Software Engineering Process is the glue that holds the technology layers together and enables rational and timely.
Software Engineering Principles I (Spring 2017)
Lecture 3 Prescriptive Process Models
Principles that Guide Practice
Chapter 2 Software Engineering
Chapter 4 CS435: Introduction to Software Engineering
Chapter 2 Software Engineering
Software engineering practices And Software requirements Engineering
Software Process Models
For University Use Only
Chapter 4 Principles that Guide Practice
Software Engineering Practice: A Generic View
Chapter 7 Principles that Guide Practice
REQUIREMENT ENGINEERING
Chapter 4 Principles that Guide Practice
Chapter 4 Principles that Guide Practice
Chapter 4 Principles that Guide Practice
Software Requirements Engineering
Chapter 2 Software Engineering
Presentation transcript:

May 2, May 2, 2015May 2, 2015May 2, 2015 Azusa, CA Sheldon X. Liang Ph. D. Software Engineering in CS at APU Azusa Pacific University, Azusa, CA 91702, Tel: (800) Department of Computer Science, CS 470 Software Engineering I

May 2, Azusa Pacific University, Azusa, CA 91702, Tel: (800) Department of Computer Science, Software Engineering in CS at APU CS 470 Practicing Software Engineering

May 2, Azusa Pacific University, Azusa, CA 91702, Tel: (800) Department of Computer Science, Software Engineering in CS at APU CS 470 Practicing Software Engineering The essence of software engineering practice … –Understand the problem (communication and analysis). –Plan a solution (modeling and software design). –Carry out the plan (code generation). –Examine the result for accuracy (testing and quality assurance). At its core, good practice is common-sense problem solving

May 2, Azusa Pacific University, Azusa, CA 91702, Tel: (800) Department of Computer Science, Software Engineering in CS at APU CS 470 Practicing Software Engineering Provide value to the customer and the user KISS—keep it simple stupid! Maintain the product and project “vision” What you produce, others will consume Be open to the future Plan ahead for reuse Think! Core Principles

May 2, Azusa Pacific University, Azusa, CA 91702, Tel: (800) Department of Computer Science, Software Engineering in CS at APU CS 470 Practicing Software Engineering Generic process framework –Communication (P2P) –Planning (P2P) –Modeling (M2P) –Construction (P2C) –Deployment (C2M)

May 2, Azusa Pacific University, Azusa, CA 91702, Tel: (800) Department of Computer Science, Software Engineering in CS at APU CS 470 Practicing Software Engineering Communication Principles –Listen –Prepare before you communicate –Facilitate the communication –Face-to-face is best –Take notes and document decisions –Collaborate with the customer –Stay focused –Draw pictures when things are unclear –Move on … –Negotiation works best when both parties win.

May 2, Azusa Pacific University, Azusa, CA 91702, Tel: (800) Department of Computer Science, Software Engineering in CS at APU CS 470 Practicing Software Engineering Communication Practices Initiation –The parties should be physically close to one another –Make sure communication is interactive –Create solid team “ecosystems” –Use the right team structure An abbreviated task set –Identify who it is you need to speak with –Define the best mechanism for communication –Establish overall goals and objectives and define the scope –Get more detailed Have stakeholders define scenarios for usage Extract major functions/features –Review the results with all stakeholders

May 2, Azusa Pacific University, Azusa, CA 91702, Tel: (800) Department of Computer Science, Software Engineering in CS at APU CS 470 Practicing Software Engineering –Understand the project scope –Involve the customer (and other stakeholders) –Recognize that planning is iterative –Estimate based on what you know –Consider risk –Be realistic –Adjust granularity as you plan –Define how quality will be achieved –Define how you’ll accommodate changes –Track what you’ve planned Planning Practices

May 2, Azusa Pacific University, Azusa, CA 91702, Tel: (800) Department of Computer Science, Software Engineering in CS at APU CS 470 Practicing Software Engineering –Ask Boehm’s questions Why is the system begin developed? What will be done? When will it be accomplished? Who is responsible? Where are they located (organizationally)? How will the job be done technically and managerially? How much of each resource is needed? Planning Practices

May 2, Azusa Pacific University, Azusa, CA 91702, Tel: (800) Department of Computer Science, Software Engineering in CS at APU CS 470 Practicing Software Engineering Modeling Practices We create models to gain a better understanding of the actual entity to be built Analysis models represent the customer requirements by depicting the software in three different domains: the information domain, the functional domain, and the behavioral domain. Design models represent characteristics of the software that help practitioners to construct it effectively: the architecture, the user interface, and component-level detail.

May 2, Azusa Pacific University, Azusa, CA 91702, Tel: (800) Department of Computer Science, Software Engineering in CS at APU CS 470 Practicing Software Engineering Analysis Modeling Practices Analysis modeling principles –Represent the information domain –Represent software functions –Represent software behavior –Partition these representations –Move from essence toward implementation Elements of the analysis model (Chapter 8) –Data model –Flow model –Class model –Behavior model

May 2, Azusa Pacific University, Azusa, CA 91702, Tel: (800) Department of Computer Science, Software Engineering in CS at APU CS 470 Practicing Software Engineering Design Modeling Practices –Design must be traceable to the analysis model –Always consider architecture –Focus on the design of data –Interfaces (both user and internal) must be designed –Components should exhibit functional independence –Components should be loosely coupled –Design representation should be easily understood –The design model should be developed iteratively Elements of the design model –Data design –Architectural design –Component design –Interface design

May 2, Azusa Pacific University, Azusa, CA 91702, Tel: (800) Department of Computer Science, Software Engineering in CS at APU CS 470 Practicing Software Engineering Construction Practices Preparation principles: Before you write one line of code, be sure you: Understand of the problem you’re trying to solve (see communication and modeling) Understand basic design principles and concepts. Pick a programming language that meets the needs of the software to be built and the environment in which it will operate. Select a programming environment that provides tools that will make your work easier. Create a set of unit tests that will be applied once the component you code is completed.

May 2, Azusa Pacific University, Azusa, CA 91702, Tel: (800) Department of Computer Science, Software Engineering in CS at APU CS 470 Practicing Software Engineering Coding principles: As you begin writing code, be sure you: Constrain your algorithms by following structured programming [BOH00] practice. Select data structures that will meet the needs of the design. Understand the software architecture and create interfaces that are consistent with it. Keep conditional logic as simple as possible. Create nested loops in a way that makes them easily testable. Select meaningful variable names and follow other local coding standards. Write code that is self-documenting. Create a visual layout (e.g., indentation and blank lines) that aids understanding. Construction Practices

May 2, Azusa Pacific University, Azusa, CA 91702, Tel: (800) Department of Computer Science, Software Engineering in CS at APU CS 470 Practicing Software Engineering Validation Principles: After you’ve completed your first coding pass, be sure you: Conduct a code walkthrough when appropriate. Perform unit tests and correct errors you’ve uncovered. Refactor the code. Construction Practices

May 2, Azusa Pacific University, Azusa, CA 91702, Tel: (800) Department of Computer Science, Software Engineering in CS at APU CS 470 Practicing Software Engineering Construction Practices Testing Principles –All tests should be traceable to requirements –Tests should be planned –The Pareto Principle applies to testing –Testing begins “in the small” and moves toward “in the large” –Exhaustive testing is not possible

May 2, Azusa Pacific University, Azusa, CA 91702, Tel: (800) Department of Computer Science, Software Engineering in CS at APU CS 470 Practicing Software Engineering Deployment Practices –Manage customer expectations for each increment –A complete delivery package should be assembled and tested –A support regime should be established –Instructional materials must be provided to end-users –Buggy software should be fixed first, delivered later

Thank you very much! Questions? May 2, Azusa Pacific University, Azusa, CA 91702, Tel: (800) Department of Computer Science, Software Engineering in CS at APU CS 470 Practicing Software Engineering