Presentation on theme: "COM606 Software Systems Engineering and on the Portal Introduction."— Presentation transcript:
COM606 Software Systems Engineering http://scm.ulster.ac.uk/~e62901/COM606.htm and on the Portal http://scm.ulster.ac.uk/~e62901/COM606.htm Introduction
Engineering The application of knowledge to practical uses such as the design of structures, machines, and systems. Engineering has many specialities such as civil engineering, chemical engineering, mechanical engineering and software engineering.
Software Systems Engineering “The systematic application of scientific and technological knowledge, through the medium of sound engineering principles, to the production of computer programs, and to the requirements definition, functional specification, design description, program implementation, and test methods that lead up to this code”. Answers.com
Knowledge Knowledge of what? PEOPLE PROCESS TECHNOLOGY Project/People Management Programming Languages UML Development Environments Processes for Engineering Project Management Support Improvement
Engineering Principles Testability - It is designed to have a repeatable test that can be performed to ensure that it is as expected. With bridge building, you could test the concerete, the steel, expansion and contraction in hot weather, etc. Maintainability - It is designed to last. A bridge should last twenty years with a designed way to maintain the bridge or safely widen the bridge if so desired. Integrity - It is designed to have structural integrity. A bridge will not just break in half. In memory state must not just become corrupt. External integration - It is designed to have a particular well defined way to integrate with its environment without any confusion. A bridge takes cars. There is a sign that says the maximum tonnage and height of the bridge - no confusion. Ethics - Act primarily in the best interests of (a) the above principles, (b) the users, and (c) the client. If the bridge is going to break and kill people, you cannot sign off on the construction. Management - An engineer is proactively involved in the management of various responsibilities because the ultimate responsibility rests on the engineer. An engineer does not sit on the side listening to builders about bridge building. An engineer is actively involved in listening to builders and will let them do their speciality but is proactive in coordinating the various specialists towards the ultimate goal. Bridge building is typically managed by civil engineers - there are concrete and steel specialists but they are typically coordinated at a design level by the engineer, not by business.
Computer Programs This is what we are applying our knowledge to. A computer program is simply a product of the software engineering process. A product is a work product that is intended for delivery to a customer or end-user. A product can take different forms. A product can be a process or a service. A work product is a useful result of a process (an engineering process) and can take the form of files, documents, products, services, processes. A work product is not necessarily part of a product.
Requirements definition, functional specification, design description, program implementation, and test methods By our earlier definition we are applying our knowledge to the production of computer programs and the use of the activities identified above. These activities have been conveniently arranged for us in what we call a development lifecycle. Engineers use development lifecycles to guide them in the activities necessary to build a product
Simple Waterfall Software Development Lifecycle Software concept requirements development architectural design detailed design coding and debugging system testing
Software Process SDLC does not tell us how to do anything. It informs us of the type of activity to be engaged in and the order of such activities. When we choose a lifecycle for development and decide how we are going to carry out the necessary activities we have a software process (sometimes referred to as a software development methodology). Unfortunately, the industry has confused these many terms. Sometimes a SDLC is referred to as a software process. A software process, however, employs specific practices, tools and techniques with which to carry out the activities identified in a SDLC. The SDLC is not specific about this.
Process Performance Models It is organisations that use software processes in their everyday development of software products and processes. Models exist which identify the type of processes and practices which are necessary in a capable process Organisations can then examine the software processes that they are using and compare these with the processes shown in the model This can then reassure the organisation that its processes are capable Such models are the CMMI-DEV, SPICE and ISO15504 to name just a few
What are we going to be doing in this module? Requirements Engineering Process Models – CMMI DEV V1.2 V1.3 To include the Engineering and Support Processes Improving and Stabilising Processes Verification and Testing Provide some insight into the processes used in the production of a final year project