Department of Computer Science, Unit Catalogue 2009/10 |
CM20223: Systems development (a) |
![]() | 12 |
![]() | Intermediate |
![]() | Academic Year |
![]() | CW 40%, EX 60% |
![]() | CM20223A Mandatory Extra Work (where allowed by programme regulations) |
Description: | Aims: To build on and unify concepts taught within Systems Engineering and Systems Architectures, and introduce theory and technologies for the design and development of non-trivial software systems over distributed services. To apply knowledge and tools for the management and control of the development process. To provide a systems-based understanding of data, data modeling, storage, access, retrieval and protection. To build on the fundamental concepts of networking and prepare students for networking terminology and concepts they may meet on placement. Learning Outcomes: On completion of this unit students will be able to: 1. Apply their understanding of software lifecycles and project management techniques to the development, control and quality assurance of high level software systems; 2. understand in depth of the nature of data, the capture of data needs in models at various levels of abstraction, and the formal description of the data processing requirements and apply these to the development of data storage, management and processing applications; 3. demonstrate knowledge of implementation issues and solutions relating to local and distributed data storage, access, communication, integrity and security, and the application of this knowledge in developing systems; 4. show familiarity with the use, construction, operation and evolution of the Internet; 5. describe the architectures and services required for the construction of concurrent and distributed applications; 6. decide which protocols are used in or relevant for a particular application, and describe the features of a given higher-level internet application. 7. understand and apply the ethical and legal framework relating to data ownership storage, transmission and publication. Skills: Use of IT (T/F, A), Problem Solving (T/F, A). Content: As CM20215, viz. the following. * Development: Review of key concepts for the control of software development. Quality Assurance. Documentation. Uncertainty. Risk Control and critical systems. Legacy applications - their reuse and refactoring. Tool support for the systems design and development process. * Modelling: Conceptual and Logical models. Data Models and the E-R model. Systems models and UML. Large and very large systems modeling. * Data definition and query: Structured data - The relational model and algebra, SQL, Normalisation. Semi-structured data - XML and XML querying * Physical design: Constraints, triggers, views. Index management. Concurrency, Recoverability, Transaction control. Optimisation. Administration decisions and trade-offs. * Seven and four layer models. RFCs and standardization. Address allocation. Evolution of the internet. The IP layer and IP routing: Routers and routing protocols: the AS concept. The Transport Layer: TCP and UDP. The port concept and well known ports. Multiplexing and Demultiplexing. Higher Layers: eg. Mail - Envelope, headers and content; Mail faking and spam; Auditability; Legal Issues; Electronic signatures and etiquette. * Identity, authentication and security, physical security, security from error and crime, reliability and robustness. * Distributed systems: Server architectures, Data definition and exchange, Service access, Web services * The ethical and legal framework for data and privacy rights, data protection, transmission, publication and ownership and the freedom of information. Review of legislation. |