160 likes | 292 Views
Review. The need for software engineering Processes Waterfall Iterative waterfall Evolutionary Formal systems Reuse-oriented Iterative Incremental Spiral. Barzun's Laws of Learning.
E N D
Review • The need for software engineering • Processes • Waterfall • Iterative waterfall • Evolutionary • Formal systems • Reuse-oriented • Iterative • Incremental • Spiral
Barzun's Laws of Learning The simple but difficult arts of paying attention, copying accurately, following an argument, detecting an ambiguity or a false inference, testing guesses by summoning up contrary instances, organizing one's time and one's thought for study -- all these arts -- cannot be taught in the air but only through the difficulties of a defined subject. They cannot be taught in one course or one year, but must be acquired gradually in dozens of connections.
Requirements document • Supported activity list • HCI description • Solved problems list • Information sources list • Information-requesting organizations • Checks and Balances • Security and fault-tolerance requirements • Interoperating systems list • Estimates of information capacity and growth • Project time frame • Prioritization of requirements • Ethical concerns
Eliciting and Validating Requirements – Start of Design • Informal Scenarios • Detailed walkthrough of scenario • UCCD – Use-case centered design • Use-cases – Use-case diagrams • Scenarios • Primary Classes • Nouns classes • Properties (State, service, multiple/common attributes/methods, essential requirement)
UML • Use-Case diagrams • Deployment Diagrams • Class Diagrams • State Diagrams • Sequence diagrams • Object diagrams
Architecture • Skeleton • Top level design of system • Persistence • HCI
Design with Reuse • Component-based development • Provides/Requires interfaces • Frameworks - MVC • Application families • Resource management system – specialized for LMS • Design Patterns • Observer
Architecture - Distributed • Performance • Security • Safety • Availability • Maintainability • Models • Repository, Client-server, centralized/event-triggered control, Object Models
Distributed Systems • Client-server • Server-consumer model • Data management, application processing, presentation • Thin and fat clients • Three Tier Architectures • Distributed objects • Peer to peer • CORBA
Verification and Validation • Verification • Are we building the product right? • Validation • Are we building the right product? • Unit and integration testing • Black box versus White box testing
Engineer Software Engineer Responsibilities:·Design and develop in C tests to validate ASIC hardware and software features and functionality·Design and develop tests for hardware and software specification conformance·Analyze protocol and software design - code, and create detailed test descriptions ·Develop software and/or system configurations to execute test descriptions·Execute test in VERA simulator, on FPGA boards, or on a system-level box Key Role: Contribute significantly to a project involving the design and development of software for a scanning and message forwarding system. Qualifications: • BS or MS degree in CS • 2+ years of experience in C++ programming • Experience with Java and object-oriented analysis and design • Experience with Sun workstations running Solaris • Experience with using tools such as Rogue Wave and Purify
More : The responsibilities of this role include:Defining the functional requirements of the ApplicationsSoftware solution and designs solution to meet those requirementsAnalyzing situations or data to determine feasibility of design within time and cost requirementsDesigning and developing Software applicationsConsulting with other engineering staff to evaluate interface between hardware and software to maximize performance of the applicationsWriting code for individual components of Multi-Tier applicationsBuilding and executing Database Server scriptsMaintaining documentation of code and performs bug fixesConsulting with clients concerning maintenance of applications