190 likes | 205 Views
Software Production. (0721330) First Semester 2011/2012 Dr. Samer Odeh Hanna (PhD) http://philadelphia.edu.jo/academics/shanna. Course Objectives.
E N D
Software Production (0721330) First Semester 2011/2012 Dr. Samer Odeh Hanna (PhD) http://philadelphia.edu.jo/academics/shanna
Course Objectives • This course provides students with an overall context in which software systems are developed from the viewpoint of processes that support the development. • Software engineering is described as the set of activities developers engage in to create high-quality products within schedule and budget constraints.
Specific Objectives • Understand the theoretical basis for process improvement efforts. • Compare specific processes
Process Improvement Frameworks Process Models Actual Core Processes Making Things Better Knowing What we Are doing In first place Objectives
Textbooks • B. Bruegge, A. H. Dutoit, “Object-Oriented Software Engineering Using UML, Patterns, and Java”, Third Edition, Prntice Hall, 2009. • R. Pressman, “Software Engineering, A Practitioner’s Approach” Seventh Edition, McGraw-Hill, 2010. • J. Hunt, “Agile Software Construction”, Springer, 2006. Notes: • First and second textbooks are available at the university library • Third is available as a pdf file on the lecturer’s website.
What we intend Requirements Software
Requirements Analysis Design Implementation Testing Delivery and Installation How it should go
Inherent Problems with Software Development • Requirements are complex • The client does not know the functional requirements in advance • Requirements may be changing • Technology enablers introduce new possibilities to deal with requirements • Frequent changes are difficult to manage • There is more than one software system • New system must be backward compatible with existing system (“legacy system”) • This leads us to software life cycle modeling
Definitions • Software lifecycle modeling: Attempt to deal with complexity and change • Software lifecycle: • Set of activities and their relationships to each other to support the development of a software system
Identifying Software Development Activities • For finding activities and dependencies we can use the same modeling techniques when modeling a system such as creating scenarios, use case models, object identification, drawing class diagrams, activity diagrams • Questions to ask: • What is the problem? • What is the solution? • What are the mechanisms that best implement the solution? • How is the solution constructed? • Is the problem solved? • Can the customer use the solution? • How do we deal with changes that occur during the development? Are enhancements needed?
Requirements Analysis What is the solution? System Design What are the mechanismsthat best implement the solution? Program Design How is the solutionconstructed? Program Implementation Is the problem solved? Testing Can the customer use the solution? Delivery Are enhancements needed? Maintenance Possible Identification of Software Development Activities What is the problem? Problem Domain Implementation Domain
Software Development as Application Domain: A Use Case Model
Activity diagram for the same life cycle model Software development goes through a linear progression of states called software development activities
Object Design Document Problem Statement Test Manual Requirements Analysis Document Executable system System Design Document User Manual Software Development as Application Domain: Simple Object Model Software Development
What is a process? • A group of homogeneous tasks that are related together in which an outcome can be identified. • People, equipment, input, methods, and environment that work together to produce output. • The set of activities, methods, and practices that are used in the production and evolution of software. • Set of activities, organized in steps, in order to transform users needs into operational software. • Steps, partially ordered, are in interaction and aim to achieve a goal.
Processes, Activities and Tasks • Process Group: Consists of Set of Processes • Process: Consists of Activities • Activity: Consists of sub activities and tasks Development Process Group Process Design Activity Design Database Task Make a Purchase Recommendation