Software Production ( ) First Semester 2011/2012 Dr. Samer Odeh Hanna (PhD)
Software Production 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.
Software Production Specific Objectives Understand the theoretical basis for process improvement efforts. Compare specific processes
Software Production Objectives Actual Core Processes Process Improvement Frameworks Process Models Making Things Better Knowing What we Are doing In first place
Software Production Textbooks B. Bruegge, A. H. Dutoit, “Object-Oriented Software Engineering Using UML, Patterns, and Java”, Third Edition, Prntice Hall, R. Pressman, “Software Engineering, A Practitioner’s Approach” Seventh Edition, McGraw-Hill, J. Hunt, “Agile Software Construction”, Springer, Notes: First and second textbooks are available at the university library Third is available as a pdf file on the lecturer’s website.
Software Production Chapter 1: Introduction
Software Production Requirements Software What we intend
Software Production How it should go Requirements Analysis Implementation Design Testing Delivery and Installation
Software Production 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
Software Production 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
Software Production 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?
Software Production Possible Identification of Software Development Activities Requirements Analysis What is the problem? System Design What is the solution? Program Design What are the mechanisms that best implement the solution? Program Implementation How is the solution constructed? Testing Is the problem solved? Delivery Can the customer use the solution? Maintenance Are enhancements needed? Problem Domain Problem Domain Implementation Domain Implementation Domain
Software Production Software Development as Application Domain: A Use Case Model
Software Production Activity diagram for the same life cycle model Software development goes through a linear progression of states called software development activities
Software Production Software Development as Application Domain: Simple Object Model Object Design Document Requirements Analysis Document Executable systemProblem Statement Software Development System Design Document Test Manual User Manual
Software Production 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.
Software Production Processes, Activities and Tasks Process Group: Consists of Set of Processes Process: Consists of Activities Activity: Consists of sub activities and tasks Process Group Process Group Process Activity Development Design Task Design Database Design Database Make a Purchase Recommendation Make a Purchase Recommendation
Software Production Object Model of the Software Life Cycle
Questions