The tip of the iceberg is that the software architectures are praised or blamed for the software being "good" or "bad". However, what is not seen is the tremendous effort and knowledge required to create them.
This training from Software View is about building software architectures. The training is comprehensive and broad in its coverage. In this training, we do not go into the details of specific reference architectures like Java Enterprise Edition or .NET platform. We cover software architecture at a layer above and hence the topics apply for all software development work irrespective of the development platforms, operating systems and programming languages. In short, the learnings from this training will help you even if you want to create a platform like Java Enterprise Edition or .NET. >> more details
Software design patterns represent proven solutions to recurring software design problems. They capture the knowledge of software experts in an easy to learn fashion. Upon learning, they help freshers and the experts to produce high quality software designs with desired properties. Ability to use design patterns is an essentially required skill of any software engineer and represents maturity. >> more details
Running a software development house has many awards. However, the complexities involved uniquely differentiates software development from other businesses. Unless the leaders are well aware of the traits and actively manage them, software development may not produce the benefits at the maximum levels possible or eventually can end up with failure. This training provides the broad view of software development as required for the leaders to form new companies or better grow their existing software companies towards excellence. >> more details
Software developers know that similar code appears and reappears in many places of the same artifact (source file) or multiple artifacts. Call them crosscutting concerns. AOP provides a mechanism to change the programming types and structures (classes) and modularize such concerns into other types and structures thereby letting the modularized crosscutting concerns be reused without repeating the same coding. This can be a great mechanism to save time and money spent on development and maintenance of software. We direct you to our training on Spring Framework where we teach you how to use AOP in real life with an ample amount of examples. Contact us if you need a customized training. >> more details
For software development companies, a sound development methodology is a key to success. However, history shows ample amounts of cases where developers divert from the process they said to follow. Furthermore, some processes add significant overheads undermining the productivity at which the final goal is achieved - the working software. Agile is where the theory meets the real life. Than heavy weight software development processes, more and more companies embrace agile approaches due to the more realistic and practical means used to develop software, significantly enhanced productivity of development and continuous high value delivery to the client with guaranteed client satisfaction. >> more details
Despite the difficulties of predicting future, estimating software projects (development, quality assurance or maintenance) is an essential need. An estimate helps pricing and planning the project before the project starts. Afterwards, an estimate helps in managing the project progress. Hence, attempts to make an estimate as realistic as possible is paramount to the success of software project undertaking companies. >> more details
Use cases are a great way of capturing requirements. Unfortunately, many write use cases without a clear understanding of how they are used. This leads to diverse styles and structures leading to confusion or inferior requirements management. This 2 day training teaches you what use cases are, when and where they are used, use case model, how to improve the quality of use cases, templates, structure use cases properly (including extending and including), meaning of level, determining the correct level, writing use cases at a consistent level, re-organizing multi-level use cases, iterative enhancement of use cases (in iterative development) and finally some guidelines about inclusion of non-functional requirements. >> Contact for more details
Subversion is a free and open source version controlling system being used by individuals and large software development companies alike. This one day training on Subversion is both for administrators and users. It teaches you how to administrate a Subversion installation, different repository configurations, different access control (security) configurations, using command line and GUI based Subversion clients, preferred user interaction patterns, software versioning (numbering) best practices, branching and merging. If requested, merge tracking, sparse checkouts, repository sharding and partitioning, read-only clustering for improved performance will optionally be covered on a second day >> more details
PKI allows computer users (including systems) to be authenticated to each other without prior contact and is being used for e-commerce, trusted message and document exchange, certification purposes and systems integration. This 2 day training introduces e-commerce basics, cryptography basics (including signing and encryption), keys, certificate authorities (CAs), self signing, certificates, different versions of X.509 certificates, certificate extensions, certificate revocation lists (CRL), CRL extensions and path validation. All these will be introduced with hands on exercises and production ready tools will be used to generate keys, certificates, import and export to different formats and manage key stores and lists. >> Contact for more details
Web applications are integral parts of many enterprise applications. While they provide a convenient mechanism for organizations to render their services in a customer convenient manner, they are often the targets for abuse. Effects of such abuses can often be devastating and costly to recover from. Hence, all non-trivial web applications should be developed, tested, selected, evaluated, bought, deployed and operated with sufficient security controls.
This advanced training on web application security distinguishes threats, vulnerabilities and attacks. Each threat, vulnerability and attack is looked at in detail and countermeasures are identified. Some topics are highlighted for their increased relevance or the need for greater explanation.
The training brings in threat risk modeling to make sure security investments are made at appropriate times and at appropriate amounts so that no money will be wasted on security measures unnecessarily and in unacceptable quantities.
The participants will also get exposed to a well accepted application security process and a set of principles they can follow in their organizations. A maturity model will also be introduced with which organizations can benchmark their security assurance efforts. >> more details
Originally designed for 30 days, this is a customizable training ideal to be used by organizations to bring up the skills of their fresh recruits in par with skilled developers. The comprehensive training covers many areas of software development (Java SE 6, J2EE, Java EE 5, OOP, SQL + RDBMS, Coding Standards, Best Practices and Patterns, Test Infected Programming with JUnit, Eclipse, Ant, Hibernate, Spring, The Internet, WWW, Networking Fundamentals, HTML, JavaScript, CSSv2, Struts, Tiles, JavaServer Faces, AJAX and XML/Web Services). We will be glad to modify this training to suit your needs. Click here for a slightly old proposal we created for a client engagement so that you can learn the breadth and depth of this training. >> Contact for more details
Java Standard Edition covers the core language and developers with no exception should first be conversant with the core language to use higher level application environments like Java Enterprise Edition. Furthermore, Java is an object orientation programming (OOP) language and hence the developers are required to have a firm understanding of what OOP is and how to apply them correctly. >> more details
Swing is the standard API used to create graphical user interfaces (GUI) in Java. This 4 day training focuses on advanced Swing controls, event delegation model, multi-threading techniques, default and writing new layout managers, themes, look-and-feel (default, customization, implementing from the scratch), separable model architecture, customizing existing Swing widgets, writing new Swing widgets. >> Contact for more details
Java Platform, Enterprise Edition proposes a robust architecture used to develop enterprise applications in Java programming language. It is also an umbrella under which a large number of technologies and standards coordinate with each other in robust, multi-tier, server-centric applications. >> more details
This is a customized training as requested by a client on advanced security architectures as applicable to Java Enterprise Edition.
The training focuses on implementation of security in multi-tier environments (with physically separated tiers), single sign-on (SSO), federated access implementation mechanisms, compliance requirements of web applications and avoiding the known vulnerabilities. The training also introduces products that can be used off-the shelf. >> more details
Spring Framework is a revolutionary application development framework that has dramatically changed the way Java applications are built and integrated together. While the original versions had limited features, Spring has now evolved to a stage that it is so serious to be neglected. Spring helps applications be developed faster, encourages loose coupling, modularization, testability and reuse of components. It also simplifies integration, adaptability and reconfigurability of Java applications to an unexampled level. >> more details
JavaServer Faces (or JSF for short) brings the years of experience of web application developers together into an easy to use, but highly customizable web application framework. Before JSF, frameworks like Struts were widely used. But for present day Java based Web applications, JSF is highly recommended over other frameworks and often the use of other frameworks are discouraged. >> more details
Effective information delivery is a vital need of enterprises. Information needs to be aggregated from disparate systems within or external to organizations and distributed via a convenient user interface. Value of the delivery platform further improves if a user can choose what information he/she prefers to see, personalize how the information is presented according to his/her preferences, and access all the information he/she needs and permitted via a single point of access. >> more details
Test Driven Development (also known as Test First Programming, Test Infected Programming) is the practice where tests are written before the actual code is implemented. This improves the code quality, reduces bugs and facilitates regression testing of software. Furthermore, the overall development and maintenance efficiency improves. JUnit has become the choice of unit testing framework for Java driving TDD. This 2 day training introduces JUnit and several extensions (DbUnit - to test with databases, JUnitPerf - to test for performance, Jakarta Cactus - for in-container testing, HttpUnit and jWebUnit - for web application testing and EasyMock - for mock object testing). This is a comprehensive introduction to TDD in Java and includes best practices to be followed with JUnit and the extensions. >> Contact for more details
Drupal is a Content Management System (CMS) written in PHP. Distributed free of charge and being an open source product, it is being used as a mainstream dynamic web site and web application implementation platform for the Internet and intranets. A large number of Drupal modules (which are again available free of charge) extend the core platform to add diverse functionalities. This 3 day training is about the internals of Drupal. Participants will learn how to administrate a Drupal installation, content classification, advanced security configurations, the modular architecture of Drupal, writing new modules, customizing and writing new Drupal themes. >> more details
Asterisk is a software based freely available PABX (Private Automatic Branch Exchange - A telephone system within an enterprise that switches calls between various parties in pre-configured fashions). It is in production use at homes, small businesses, large businesses and even at the call exchanges managed by telecom companies. Even for setting up a call center for your business, Asterisk is an ideal solution that can significantly bring down the cost. Not like traditional PABX solutions with limited features and flexibility, Asterisk comes with a large number of features and is highly reconfigurable meaning that you can twist the configurations in many ways to best suit your needs. This 3 day training with practical exercises focuses on installation, dial plan configuration, voice mail configuration, interactive voice response (IVR), music-on-hold, call queuing, transferring, forwarding, different voice codecs, trunking and computer-telephony integration among other topics. >> Contact for more details
Freely available Linux based operating systems are being used by millions of people worldwide as their computing platform of choice. Linux can be used in your personal desktop computer. Commercial and non-commercial organizations can use Linux to run mission critical and/or complex applications. >> more details
Linux, Apache, MySQL and PHP (known as LAMP for short) has been the best technology stack of choice of millions of dynamic web sites and applications.
This training focuses on using LAMP and also on how to do so in a way where the applications developed are massively scalable. We focus on read only clustering, horizontal clustering, session management in a distributed environment and load balancing. >> more details
Running a software development house has many awards. However, the complexities involved uniquely differentiates software development from other businesses. Unless the leaders are well aware of the traits and actively manage them, software development may not produce the benefits at the maximum levels possible or eventually can end up with failure. This training provides the broad view of software development as required for the leaders to form new companies or better grow their existing software companies towards excellence. >> more details
Pervasive nature of Information Technology has modernized the style of corporate management. Boards of directors and key business executives can no longer delegate their responsibilities in driving strategic IT initiatives to others – steering IT has become part of corporate governance.
IT Governance focuses on business performance optimization and risk reduction through strategic use of IT. Enterprise Architecture describes the central and detailed plan that analyzes a business both in terms of business processes and information generation/transformation/consumption. >> more details
Service Oriented Architecture is the present paradigm of software systems implementation in enterprises. Than using costly and disparate software systems, SOA encourages a business to build applications by composing relatively small services together. This enables the IT infrastructure of an enterprise to quickly respond to business needs. >> more details
This training on COBIT version 4.1 introduces an internationally recognized framework for IT governance. The training also refers to supporting standards and best practices. COBIT is a product of IT Governance Institute and is actively developed and maintained. >> more details
Web applications are integral parts of many enterprise applications. While they provide a convenient mechanism for organizations to render their services in a customer convenient manner, they are often the targets for abuse. Effects of such abuses can often be devastating and costly to recover from. Hence, all non-trivial web applications should be developed, tested, selected, evaluated, bought, deployed and operated with sufficient security controls.
This advanced training on web application security distinguishes threats, vulnerabilities and attacks. Each threat, vulnerability and attack is looked at in detail and countermeasures are identified. Some topics are highlighted for their increased relevance or the need for greater explanation.
The training brings in threat risk modeling to make sure security investments are made at appropriate times and at appropriate amounts so that no money will be wasted on security measures unnecessarily and in unacceptable quantities.
The participants will also get exposed to a well accepted application security process and a set of principles they can follow in their organizations. A maturity model will also be introduced with which organizations can benchmark their security assurance efforts. >> more details
Also known as a computer incident response team (CIRT) or a computer emergency response team (CERT), a CSIRT is a group of empowered people to look after computer security incidents. There goal is to engage with corrective measures against harmful incidents as quickly as possible when every second counts. A CSIRT is a necessary component of businesses that use IT to significant levels and critical to their operations due to growing amounts of harmful incidents caused by internal and external parties and also by partners. This is a comprehensive 4 day training about operating a CSIRT. It teaches you how to formulate an effective CSIRT, managing through internal politics, team organization, setting up rules and guidelines, services of a CSIRT and their qualities, responding to emergencies and best practices, ensuring the security of the CSIRT itself, team management, performance measurement and benchmarking a CSIRT. Participants will be provided with material (templates, processes, structures, rules, guidelines,...) covering each topic that they may use to quickly setup and efficiently operate a CSIRT. >> more details
One of the techniques to evaluate whether the often large IT investments return the perceived promises is to use IT Balanced Scorecards. They are based on the widely used Balanced Scorecards concept introduced by Robert S. Kaplan and David P Norton. This one day training teaches you how this modified Balanced Scorecards concept is used to measure the performance of your IT department, all or individual IT projects, all or specific systems. You will also receive a fair number of example scorecards used by various organizations. Also, the training will teach you how IT Balanced Scorecards can link with organization-wide scorecards. >> Contact for more details
Passive approaches are not just sufficient to secure your e-commerce site or critical network and computer infrastructure. This training teaches you how hackers and crackers use various tools and techniques to harm your systems and gain control over them. Furthermore, the training teaches you how to prevent and secure your assets aginst such cases. All topics include comprehensive lab exercises. The four day training covers: Network scanning, Network monitoring, Problems with plain-text protocols, Forward and reverse tunneling, Brute force password cracking, Hacking web applications, Cross-site scripting, Cross-site request forgery, Phishing techniques, Sniffing and hijacking SSL encrypted sessions, SQL injection, IP spoofing, DNS poisoning, Trojan horses, Key logging, Root kits and evidence removal. >> Contact for more details
PKI allows computer users (including systems) to be authenticated to each other without prior contact and is being used for e-commerce, trusted message and document exchange, certification purposes and systems integration. This 2 day training introduces e-commerce basics, cryptography basics (including signing and encryption), keys, certificate authorities (CAs), self signing, certificates, different versions of X.509 certificates, certificate extensions, certificate revocation lists (CRL), CRL extensions and path validation. All these will be introduced with hands on exercises and production ready tools will be used to generate keys, certificates, import and export to different formats and manage key stores and lists. >> Contact for more details
Following are some more trainings that we can offer. We are happy even to deliver customized trainings tailored to your needs. We are yet to create fully detailed pages for them. Mean time, Contact us if interested. Trainings below are categorized into groups for easy comprehension. When contacting, please indicate which specific training(s) you are interested in (not the category or categories).
Category 01: Trainings On Software Engineering Rigor
Category 02: Trainings On Standard And Enterprise Java
Category 03: Trainings On Development Tools/Platforms
Category 04: Trainings On Some More Topics
Copyright 2007 Software View
"Design Patterns, IT Governance, Enterprise Architecture, SOA,... The type of course topics you are considering are very good and very relevant. Also, congratulations on receiving your TOGAF certification!"
--
Shahani Weerawarana, Ph.D.,
Chief Technology Officer, ICT Agency, Sri Lanka.
