Download Software Engineering

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts
no text concepts found
Transcript
APEGBC
2004 SOFTWARE ENGINEERING SYLLABUS
For Self-Evaluation
Name: ____________________________________
User ID_____________________________________
For directions refer to the Instructions for Completing Syllabus and Course Descriptions.
Please save as a PDF document and upload via your applicant portal.
Exam
Number
and Name
Applicant’s Self-Evaluation –
Course Equivalent
Exam Name
Page Number Reference
For Office Use Only
Basic Studies (4 Required)
04-BS-2
Probability
Statistics
04-BS-5
Advanced
Mathematics
04-BS-8
Digital
Circuits
&
Logic
Full Credit
Comments
No Credit
Full Credit
Comments
No Credit
Full Credit
Comments
No Credit
04-BS-16
Discrete
Mathematics
Full Credit
Comments
No Credit
Basic Studies (2 Required)
04-BS-1
Mathematics
Full Credit
Comments
No Credit
04-BS-4
Electric Circuits
and Power
Full Credit
Comments
No Credit
04-BS-6
Mechanics
of Materials
Full Credit
Comments
No Credit
04-BS-7
Mechanics of
Fluids
Full Credit
Comments
No Credit
04-BS-10
Thermodynamics
Full Credit
Comments
No Credit
04-BS-11
Properties of
Materials
Full Credit
Comments
No Credit
04-BS-12
Organic Chemistry
Full Credit
Comments
No Credit
04-BS-13
Biology
Full Credit
Comments
No Credit
04-BS-14
Geology
Full Credit
Comments
No Credit
Full Credit
Comments
No Credit
Group A (7 required)
04-Soft-A1
Algorithms & Data
Structures
04-Soft-A2
Computing
Structures
Full Credit
04-Soft-A3
Software Design
Full Credit
Comments
No Credit
04-Soft-A4
Real Time Systems
Full Credit
Comments
No Credit
04-Soft-A5
Requirements and
Specifications
Full Credit
Comments
No Credit
04-Soft-A6
Software Quality
Assurance
Full Credit
No Credit
Software Process
Full Credit
Comments
04-Soft-A7
No Credit
Comments
Comments
No Credit
Group B (3 Required)
04-Soft-B1
Advanced Object
Oriented Design
Full Credit
Comments
No Credit
04-Soft-B2
User Interface
Full Credit
Comments
No Credit
04-Soft-B3
Security/Safety
Full Credit
Comments
No Credit
04-Soft-B4
Reliability and
Fault Tolerance
Full Credit
Comments
No Credit
04-Soft-B5
Software Modeling
Full Credit
Comments
No Credit
Full Credit
Comments
No Credit
& Verification
(Formal Methods
04-Soft-B6
Advanced Software
Project
Management, Life
Cycle
Methodologies
04-Soft-B7
Reverse
Engineering,
Maintenance &
Evolution
Full Credit
Comments
No Credit
04-Soft-B8
Distributed Systems
Full Credit
Comments
No Credit
04-Soft-B9
Parallel Computing
Full Credit
Comments
No Credit
04-SoftB10
Networking and
Communications
Full Credit
Comments
No Credit
04-SoftB11
Process Control
Systems
Full Credit
Comments
No Credit
04-SoftB12
Scientific
Computation
Full Credit
Comments
No Credit
04-SoftB13
Performance
Analysis &
Simulation
Full Credit
Comments
No Credit
04-SoftB14
Safety Critical
Systems
Full Credit
Comments
No Credit
04-SoftB15
Artificial
Intelligence/Intellig
ent Systems
Full Credit
Comments
No Credit
04-SoftB16
Compilers
Full Credit
Comments
No Credit
04-SoftB17
Programming
Language Paradigm
Full Credit
Comments
No Credit
04-SoftB18
Computer
Graphics/Imaging/
Visualization
Full Credit
Comments
No Credit
Complementary Studies (All Required)
11-CS-1
Engineering
Economics
Full Credit
Comments
No Credit
11-CS-2
Engineering in
Society – Health
and
Full Credit
Comments
No Credit
11-CS-3
Sustainability,
Engineering and the
Environment
Full Credit
Comments
No Credit
11-CS-4
Engineering
Management
Full Credit
Comments
No Credit
SOFTWARE ENGINEERING EXAMINATIONS
GROUP A - COMPULSORY EXAMINATIONS (SEVEN REQUIRED)
04-Soft-A1 - Algorithms & Data Structures
Fundamental data structures and their associated algorithms. Stacks and queues, trees, tables, lists, arrays, strings, sets; files and access
methods. B-trees, multi-key organizations. Searching. Sorting.
Algorithm design techniques, such as divide and conquer, the greedy method, balancing, dynamic programming. Algorithms related to set
operations, Graphs, graph algorithms: depth-first and breadth-first search, minimum spanning tree, shortest path. Empirical and theoretical
measures of the efficiency of algorithms.
Complexity analysis. Hard problems, NP-completeness, and intractable problems
Suggested Texts:
None at this time.
04-Soft-A2 - Computing Structures
Computer Architecture basics, including Boolean algebra, gates, combinational and sequential logic, machine-level representation of data;
machine organization, assembly/machine language programming; memory organization, caches, heaps, stacks; serial and parallel I/O,
interrupts, bus protocols, and direct-memory access (DMA). Operating System basics, including concurrency, process scheduling, memory
management; protection, access, and authentication; linking and loading. Database basics, including database architecture, query languages,
transactions. File system organization and access methods (sequential, indexed-sequential, extendible hashing, B-trees), index organization.
Suggested Texts:
“Computer Organization & Design”, David A. Patterson, John L. Hennessy, Morgan Kaufman, 1998.
04-Soft-A3 - Software Design
Role of software design activity. Software design quality attributes (correctness, reliability, maintainability, portability, robustness).
Software design principles (separation of concerns, abstraction, information hiding). Software architecture, architectural structures and
views. Modularity and decomposition. Function-oriented design. Object-oriented design. Components. Interface design. Module level
design. Specification for design. Notations (graphical and languages). UML. Basic concepts of design patterns.
Suggested Texts:
”Fundamentals of Software Engineering”, Carlo Ghezzi, Mehdi Jazayeri, Dino Mandrioli Second Edition, Pearson 2003, ISBN 0-13305699-6.
“Software Engineering”, Shari Lawrence Pfleeger, Joanne M. Atlee, Third Edition, Pearson 2006, ISBN 0-13-146913-4.
04-Soft-A4 - Real Time Systems
Definition and characteristics of real-time systems. Hard and soft real-time systems. Dynamic responses of simple physical processes.
Designing real-time systems (requirements, design methods, implementation, testing, human-computer interaction). Reliability and fault
tolerance. Exceptions and exception handling. Concurrency. Synchronization and communication. Resource control. Scheduling (cyclic
executive, rate monotonic and deadline priority, priority ceiling protocols). Real-time operating systems. Simple embedded systems.
Suggested Texts:
“Real-Time Systems and Software”, Alan C. Shaw, Wiley 2001.
“Real-Time Systems”, Jane W.S. Liu, Prentice-Hall 2000, ISBN 0-13-099651-3
04-Soft-A5 - Requirements and Specifications
Elicitation sources and techniques. Modelling paradigms, including information modelling, behavioural modelling, domain modelling,
functional modelling, constraint modelling. Quality requirements (e.g., performance, usability, reliability, maintainability); expressing
quality requirements so that they are testable. Prioritization, trade-off analysis, negotiation, risk analysis, and impact analysis.
Requirements management, consistency management, interaction analysis, traceability. Requirements documentation and specification
languages. Validation, reviews and inspections, prototyping, validating non-functional requirements. Acceptance test design.
Suggested Texts:
“Software Engineering”, Shari Lawrence Pfleeger, Joanne M. Atlee, Third Edition, Pearson 2006, ISBN 0-13-146913-4.
“Software Requirements”, Karl E. Wiegers, Microsoft Press, 1999.
04-Soft-A6 - Software Quality Assurance
Validation and Verification concepts, Software Lifecycle and application of validation and verification, Software Quality Assurance
processes, Definitions of software product quality, Quality Characteristics, Engineering quality definitions, specifications, Definition and
classifications of software Defects, Fitness for use and customer quality definitions, Software Costs, quality costs and economics,
Reviews, Walkthroughs and Inspections: General Concepts, Unit (Module / Package) level testing, Subsystem / Integration testing,
Regression testing, State based testing, Traditional Functional Testing, Logical Testing/Analysis, OO Testing considerations
(polymorphism and inheritance), Safety / Failure Analysis and testing.
Suggested Text:
“A Discipline for Software Engineering”, Watts S. Humphrey, Addison-Wesley 1995,
04-Soft-A7 - Software Process
Software life cycles. Software process models. Activities in each phase. Control and life-cycle management of correct, reliable, maintainable
and cost effective software. Software documentation. Project management tools. Risk management. Communication and collaboration.
Cause and effects of project failure. Cost estimation and scheduling. Factors influencing productivity and success. Productivity metrics.
Planning for change. Managing expectations. Software maintenance. Configuration management.
Suggested Texts:
“Software Engineering”, Shari Lawrence Pfleeger, Joanne M. Atlee, Third Edition, Pearson 2006, ISBN 0-13-146913-4.
”Fundamentals of Software Engineering”, Carlo Ghezzi, Mehdi Jazayeri, Dino Mandrioli Second Edition, Pearson 2003, ISBN 0-13305699-6.
GROUP B - ELECTIVE EXAMINATIONS (THREE REQUIRED)
04-Soft-B1 - Advanced Object Oriented Design
Object orientation paradigm. Object oriented analysis: basic concepts, use cases, analysis, stereotypes and objects, analysis patterns. Object
modelling languages. Object oriented design: basic concepts, design stereotypes and objects, design patterns. Object oriented programming:
basic concepts, idioms, most common object oriented programming languages(C++, Java). Application frameworks. Object oriented case
tools. State transition and interaction diagrams. Testing of object oriented programs.
Advanced approaches to object-oriented analysis and design. Frameworks and design patterns. Design for reusability. Advanced objectoriented programming techniques. Design using object-oriented databases and distributed object architectures. Design of software agents.
Project involving object-oriented analysis, design, and implementation.
Suggested Texts:
“Object-Oriented Design”, Grady Booch, 1991.
“Object-Oriented Software Engineering”, Bernd Bruegge, Allen H. Dutoit, Second Edition, Pearson 2004.
04-Soft-B2 - User interface
Psychological principles of human-computer interaction. Evaluation of user interfaces. Usability engineering. Task analysis, user-centered
design and prototyping. Conceptual models and metaphors. Software design rationale. Design of windows, menus and commands. Voice and
natural language I/O. Response time and feedback. Colour, icons and sound. Internationalization and localization. User interface
architectures and APIs. Case studies and project.
Suggested Texts:
Interaction Design: Beyond Human-Computer Interaction – 3rd Edition, 2011, Wiley; Yvonne Rogers, Helen Sharp, and Jenny Preece;
ISBN: 0-470-66576-9.
04-Soft-B3 - Security/Safety
Characteristics of security problems. Basic encryption and decryption; secure encryption, encryption protocols and practices. Public key
cryptosystems and digital signatures. Software design for security. Security in operating systems, databases, personal computers, computer
networks and electronic communications. Risk analysis and security planning. Ethical issues in computer security.
Suggested Texts:
None at this time.
04-Soft-B4 - Reliability and Fault Tolerance
Software and hardware faults. Faults, latent faults and failures. Characterization of failure functions, probability distribution of failures,
failure intensity function. Software reliability definition and measures. MTTF, MTBF, MTTR, availability, maintainability. System use,
Musa's operational profiles and type-1 uncertainty. Defect removal and type-2 uncertainty. Reliability stability and reliability growth.
Distinction between hardware reliability and software reliability. Failure probability density function and reliability function. Systems of
reliability prediction, including prediction models. Statistical testing. Characterization of fault Injection, detection and correction at various
stages within the lifecycle. Techniques for prediction of remaining faults, including fault injection, classification tree analysis, code
coverage. General lifecycle measures for producing reliable software, including defect prevention; early defect detection and removal; design
for robustness; use of measurements from V&V activities; stabilization of requirements, design, code and test artifacts. Active and Passive
fault detection. N-version programming. Fault handling and correction, exceptions, fault tolerance. FTA. Survivability, critical functions
and degraded modes of operation.
Suggested Texts:
None at this time.
04-Soft-B5 - Software Modeling & Verification (Formal Methods)
Mathematical modelling of software, including logic, extended finite state machines, process algebra, functions, and algebraic specifications.
Mathematical reasoning of such models, including proofs of consistency, completeness, and correctness. Tools for type checking, wellformedness checking, simulation, invariant and property checking (e.g., deadlock checking, model checking), test-case generation, and code
generation.
Suggested Texts:
None at this time.
04-Soft-B6 - Advanced Software Project Management, Life Cycle Methodologies
Software Project Management Processes
Planning, integration and change control; scope management; quality management; cost management; risk management; schedule
management; communications management; human resource management; and procurement management.
Lifecycle Methodologies
Development models (Waterfall, V-Model, Incremental, Spiral, etc.) and techniques (rapid prototype, clean room, Object Oriented, etc.)
Military/aerospace and commercial development standards. Phase specific activities: software specification and requirements analysis;
software architecture comparison and selection; software design; coding and unit testing; integration testing; system testing; and operational
turn-over. Lifecycle activities: baseline management, software quality management, software configuration management.
Project involving forensic project management of a real industrial project.
Suggested Texts:
None at this time.
04-Soft-B7 - Reverse Engineering, Maintenance & Evolution
Software maintenance: corrective, perfective, and adaptive. Techniques for reverse engineering software architecture and design, for the
purpose of program comprehension. System and process re-engineering (technical and business). Refactoring. Migration (technical and
business). Impact analysis. Release and configuration management. Models of software evolution (theories, laws). Relationship among
evolving entities (e.g., assumptions, requirements, architecture, design, code, test suites). Legacy systems.
Suggested Texts:
None at this time.
04-Soft-B8 - Distributed Systems
Characteristics of distributed systems. Networked vs. centralized systems. Fundamental concepts and mechanisms. Architectural concepts of
distributing an application over several platforms. Overview of network configurations and topologies. Client-server systems. Process
synchronization and inter-process communications. Principles of fault tolerance. Transaction processing techniques. Distributed file
systems. Operating systems for distributed architectures. Security.
Suggested Texts:
None at this time.
04-Soft-B9 - Parallel Computing
Models of parallel computation. Superscalar architecture. Shared memory parallel machines. Interconnection networks and their topological
properties. Massively parallel computers. Hypercube architectures. Performance measurement for parallel algorithms. Parallel evaluation of
expressions. Parallel searching and data structures. Parallel algebraic and geometric processing.
Suggested Texts:
None at this time.
04-Soft-B10 - Networking and Communications
Data communications, including signals, modulation, and reception. Data transmission protocols, including half/full duplex,
asynchronous/synchronous, point-to-point/multidrop, and character/bit oriented. Error detecting and correcting codes. Character sets,
switching alternatives, including circuit, message, and packet. The OSI model, including physical, data link, and network layer protocols
(RS 232C, RS 449-422/23, HDLC, X.25). Transport protocols. Session layer and ISDN. The higher layers. Introduction to network
structures and designs. Switching techniques. Resource access/sharing methods (random access, polling, concentration and multiplexing).
Public data networks. Local area networks, including bus, ring, and tree topologies, protocols, and hardware. Metropolitan and Wide area
networks. Elements of queuing systems. Network performance measures (queue length, delay and throughput). Standards and the
standardization process.
Suggested Texts:
Computer Networks 5th edition, David Wetherall, Andrew S Tanenbaum, Tanenbaum, David J. Wetherall, ISBN-13: 9780132126953
http://www.chegg.com/textbooks/computer-networks-5th-edition-9780132126953-0132126958?trackid=61e44ba2&strackid=7580e35c
04-Soft-B11 - Process Control Systems
Continuous and discrete time models of continuous physical phenomena. Laplace transform, Z-transform, transfer functions. Time domain
and frequency domain response of first, second and higher order systems. Stability and feedback compensation. Steady state error and
proportional, integral and derivative (PID) control. Compensator design using root locus analysis, Nyquist criterion, and frequency domain
design. Sampling theorem, aliasing and digital implementation of continuous controllers. Anti-alias pre-filtering. Software implementation of
digital compensators. Computer control interfacing.
Suggested Texts:
None at this time.
04-Soft-B12 - Scientific Computation
Representation of numbers and floating point round-off. Polynomials: representation, division. Zeros of functions: bisection, NewtonRaphson. Numerical linear algebra: LU decomposition and Gauss elimination, conditioning, iterative techniques, structured systems,
eigenvalues. Numerical differentiation. Quadrature: Simpson’s rule, Gauss quadrature. Interpolation: Lagrange, splines. Data smoothing:
least squares. Ordinary differential equations: initial value problems, predictor-corrector, Runge-Kutta, boundary value problems, systems of
ODEs. Simple partial differential equations: parabolic, hyperbolic and elliptic problems.
Suggested Texts:
“Numerical Methods”, Laurene V. Fausett, Pearson 2003.
“Applied Numerical Methods for Engineers and Scientists”, Singiresu S. Rao, Prentice Hall 2002.
04-Soft-B13 - Performance Analysis & Simulation
Basic techniques of system performance evaluation. Specific topics include: performance modeling, discrete event simulation, verification
and validation of simulation models, analysis of simulation output, analysis of single server queue and queuing networks, modeling of
computer systems, networks, and other queuing or non-queuing systems.
Suggested Texts:
None at this time.
04-Soft-B14 - Safety Critical Systems
Safety and hazard analysis. Use of software in safety related systems. Legal and ethical considerations. FMEA, HAZOP, FTA, ETA. Risk
assessment – frequency and consequences of hazardous events. Safety integrity levels and safety cases. Software reliability. Distinction
between safety and reliability of systems. Achievement of software reliability by fault prevention and fault tolerance. Software design
aspects for safety and fault tolerance – including HCI. Choice of programming language, safe subsets. Formal methods, Algebraic, model
and process based specification, formal specification languages, refinement proofs, verification proofs. Fault tolerance, redundancy and
common mode failures, N-version programming and recovery blocks. Safety related standards. Certification and safety cases.
Suggested Texts:
None at this time.
04-Soft-B15 - Artificial Intelligence/Intelligent Systems
Artificial intelligence; definition and applications. Concepts of artificial intelligence. Predicate calculus and its use in artificial intelligence
Overview of knowledge-based and expert systems. Production systems. Knowledge representations. Search methods; planning. Natural
language processing. Programming languages (LISP and Prolog) for AI and expert system implementation. Knowledge representation.
Rule-based and object-based systems. Vision.
Suggested Texts:
None at this time.
04-Soft-B16 - Compilers
Fundamental features of programming languages, functions of compilers. Processors, preprocessors, linkers and translators. Organization of
compilers including compile-time and run-time tables. Lexical and syntactical analysis. Intermediate code generation. Object code
generation. Error diagnostic. Code optimization.
Suggested Texts:
None at this time.
04-Soft-B17 - Programming Language Paradigm
Principles of programming methodologies and the evolution of programming-language features (e.g., modules, objects, inheritance,
polymorphism, exceptions, templates) to support those methodologies. Examination of major programming-language paradigms, including
procedural, logic, functional, and object-oriented. Programming knowledge in a variety of languages.
Suggested Texts:
None at this time.
04-Soft-B18 - Computer Graphics/Imaging/Visualization
Graphics hardware, architecture, and devices. Vector and raster graphics algorithms and systems. Techniques for describing and generating
images: point, vector, and raster approaches. Image transformation, including scaling, translation, rotation, clipping, and windowing.
Graphic software and data structures. Geometrical transformations. Viewing in three dimensions. Curves and splines. Picture generation
using solid polyhedra. Illumination and color. Ray tracing. Display file compilers. Graphics data structures. Interactive graphics. Graphic
standards such as GKS, PHIGS, TIGA, and X-WINDOWS. Virtual reality technology.
Image acquisition. Image thresholding, edge detection techniques. Contour followers. Image filtering. Mathematical morphology. Image
segmentation. Pattern recognition techniques. Matching techniques. 3D object reconstruction. Image compression and related standards.
Suggested Texts:
“3D Computer Graphics”, 3rd edition by Alan Watt, Addison-Wesley, ISBN: 0 201 39855 9, ISBN-13: 978-0201398557
Related documents