Soft & Solution

Course 3: Software Application Development Cycle

This training will cover the entire range of concepts, techniques and processes applied in Software Application Development.

Participants will be trained in software industry best practices, designing, developing and testing high quality software applications.

The training program is tailored to the demands of the business world, to gain workplace experience and to obtain the best academic knowledge.

Module 1: SCRUM

Agile methodology includes a set of software development methods that focus on adaptive thinking, teamwork, collaboration, and interoperability. One of its core values is the ability to adapt and respond to changes on a continuous basis to better achieve project goals. Agile emphasizes the human side of working on a project, which is fundamentally more adaptive. It encourages groups of smaller teams to treat a problem as a set of objectives from which tasks can be derived. In a general sense, agile software tries to handle a project in a more practical way, without imposing unnecessary constraints on creativity.

At the end of this module, participants will:
– Assess how “technical debt” affects many software projects which
are developed according to predictive and “waterfall” methodologies.
– Understand how Agile software development methods help
overcome these challenges.
– Examine the values and guiding principles that guide all Agile methods and determine how these principles apply to the SCRUM method.

Learn to apply multiple iterations in order to gain a deeper understanding of the emphasis placed by agile methodology on a teamwork culture. This will allow participants to reflect on how this culture can lead to rapid learning, improving work and providing

Module 2: Basics of business analysis including requirements engineering

Business analysis is the set of tasks, knowledge, and techniques needed to identify business needs and determine solutions to business problems. Solutions often involve the development of a new system, but can also consist of process improvement or organizational change. People who perform business analysis today are known by many titles such as: business analyst, business systems analyst, systems analyst, etc. Business analysis is distinct from financial analysis, project management, quality assurance (QA), organizational development, testing, training, and documentation. However, depending on the organization, a business analyst may perform some or all of these related functions.

At the end of this module, participants will be able to:
– To integrate into a team by understanding their role, main responsibilities and relationship with other team members
– Work with business stakeholders and define the vision and purpose of the project
– Work with stakeholders and collect and document different types and levels of requests
– To understand how the selection of the software development methodology impacts the work of the business analyst
– Break down complex business scenarios into processes and data models
– Document business needs in requirements, user stories, features
– Understand the processes of prioritization, evaluation and planning for an effective transition from requirements to solution

Module 3: User Experience

Simple design and intuitive experience can be difficult. The topics covered in this module will provide you with the foundation for creating great user-centric experiences. In this module you will explore the elements of UX and its place within the software application development cycle.

First, you’ll discover quick and easy user research techniques that will help with user experience and goals. You’ll be able to apply these techniques across projects to ensure designs are user-centered.
You will learn how to consider business goals and technical constraints, and combine these with user goals.
Examples of how to communicate through scenarios, flows, and user experiences will then be shown. By the end of this module, you will have created a prototype and have the ability to plan, design and understand user needs.

At the end of this module, participants will be able to:
– To use the appropriate tools for a UX Designer
– To understand the responsibilities of a UX Designer
– To build user profiles and persons;
– To build prototypes

Module 4: Database

The Database module will cover the concepts of creating, manipulating and managing a database. Participants, at the end of this module, will get the necessary knowledge about relational databases, data security concepts and how to implement T-SQL.

At the end of this module, participants will be able to:

– To understand the basic concepts of databases
This will include relational database concepts, use of SQL Server Management Studio, Data Manipulation Language (DML), Data Definition Language (DDL).
– To create database objects
Definition of data type, use of data types, use of appropriate data types, creation and use of tables, Views, Stored Procedures.
– To manipulate the data
Using query to select data, combining conditions, using I Between, using NOT, UNION, JOIN. Using query to insert into the database, update data, delete data, TRUNCATE TABLE, DROP TABLE.
– Understand Data Storage
Normalization, first normal form, second normal form, third normal form, fourth normal form, fifth normal form. Primary, secondary and combined keys, clustered and non-clustered indexes.
– Administer the database
SQL authentication, database roles, database rights granting, object rights, role management. Database backup and restore.

Module 5: Programming

This module will enable participants to develop software applications using object-oriented programming languages. This module will serve as a solid foundation in programming, and at the same time understanding the application development cycle.

At the end of this module, participants will be able to

– Develop applications using object-oriented programming languages
– To understand and use the basics of the framework
– Understand and use different types of data
– Model and store securely in SQL database
– Be able to diagnose problems by means of debug and trace
– Be able to manage input and output (I/O) processes

Module 6: Testing

Software testing is neither complex nor difficult to implement, however it is a discipline that is rarely applied with the rigor necessary to ensure confidence in the delivered software application.
The testing module will include concepts about the objectives and principles of testing, the process that is followed during the realization of the test and the various techniques used during it. Participants at the end of this module will get the necessary knowledge about testing methods and how to apply them during the life cycle of a software.

At the end of this module, participants will be able to:

– To understand the basics and standards of testing

This will include the explanation of the concept of testing, the reasons why it is necessary to carry out software testing, its main objectives and principles, as well as the steps that are followed during the testing process.

– To carry out testing throughout the software life cycle

Treating testing as part of the software life cycle, understanding the relationship between software development and testing activities, the reasons why different levels of testing are needed and the adaptation of testing depending on the different models followed for software development -ve, carrying out testing for projects under maintenance.

– Learn and implement static testing techniques

What are static testing techniques, what testing process is followed by these techniques, analysis through different tools.