CSCD350 — Software Development Principles
Formal approaches for conceiving, designing, building, testing, deploying, and maintaining large software systems. Includes lifecycle models, team management, verification and validation.
Learning Objectives & Matches
Apply software development lifecycle methodologies including agile, waterfall, and iterative approaches
Develop application-specific software.
Design, develop and modify software systems, using scientific analysis and mathematical models to predict and measure outcomes and consequences of design.
Develop or direct software system testing or validation procedures, programming, or documentation.
Develop, document, or maintain standards, best practices, or system usage procedures.
Develop or maintain archived procedures, procedural codes, or queries for applications.
Assess the usefulness of pre-developed application packages and adapt them to a user environment.
Develop, document, and revise system design procedures, test procedures, and quality standards.
Develop or select specific software programs for various research scenarios.
Use object-oriented programming languages, as well as client and server applications development processes and multimedia and Internet technology.
Develop or specify standards, methods, or procedures to determine product quality or release readiness.
Work effectively in software development teams using collaboration tools and version control
Monitor the performance of project team members, providing and documenting performance feedback.
Work as part of a project team to coordinate database development and determine project scope and limitations.
Assign, coordinate, and review work and activities of programming personnel.
Collaborate with programmers, underwriters, accounts, claims experts, and senior management to help companies develop plans for new lines of business or improvements to existing business.
Supervise computer programmers or other systems analysts or serve as project leaders for particular systems projects.
Confer with project personnel to identify and resolve problems.
Schedule and facilitate meetings related to information technology projects.
Train staff on technical procedures or software program usage.
Monitor bug resolution efforts and track successes.
Direct or coordinate activities of project personnel.
Design, implement, and maintain large-scale software systems with complex requirements
Design, develop and modify software systems, using scientific analysis and mathematical models to predict and measure outcomes and consequences of design.
Perform systems analysis and programming tasks to maintain and control the use of computer systems software as a systems programmer.
Design computers and the software that runs them.
Process large amounts of data for statistical modeling and graphic analysis, using computers.
Develop application-specific software.
Store, retrieve, and manipulate data for analysis of system capabilities and requirements.
Store, retrieve, and manipulate data for analysis of system capabilities and requirements.
Communicate with staff or clients to understand specific system requirements.
Analyze, manipulate, or process large sets of data using statistical software.
Develop system engineering, software engineering, system integration, or distributed system architectures.
Perform software testing including unit testing, integration testing, and system validation
Install, maintain, or use software testing programs.
Develop or direct software system testing or validation procedures, programming, or documentation.
Develop testing programs that address areas such as database impacts, software scenarios, regression testing, negative testing, error or bug retests, or usability.
Install and configure recreations of software production environments to allow testing of software performance.
Research, test, or verify proper functioning of software patches and fixes.
Test programs or databases, correct errors, and make necessary modifications.
Test programs or databases, correct errors, and make necessary modifications.
Evaluate or recommend software for testing or bug tracking.
Design or develop automated testing tools.
Conduct software compatibility tests with programs, hardware, operating systems, or network environments.
Gather, analyze, and document software requirements and specifications